首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯云录音文件快速识别实战教程

腾讯云录音文件快速识别实战教程

原创
作者头像
Lorin 洛林
发布2025-07-07 07:16:04
发布2025-07-07 07:16:04
1360
举报

前言

  • 本文介绍如何基于腾讯云语音识别 快速识别接口,实现通过 HTTPS POST 方式上传音频并快速识别同步返回识别结果的实战流程。

接口简介

  • 腾讯云语音识别 快速识别接口 支持上传音频文件并同步返回识别结果,适合以下场景:
代码语言:txt
复制
- 视频字幕自动生成
- 呼叫中心/质检实时转写
- 会议记录转写

前置条件

  • 开通腾讯云语音识别服务。
  • API 密钥管理 新建密钥,获取:
    • AppID
    • SecretID
    • SecretKey

实战

添加 Maven 依赖

  • 在项目 pom.xml 中引入腾讯云语音识别 SDK:
代码语言:xml
复制
<dependency>
    <groupId>com.tencentcloudapi</groupId>
    <artifactId>tencentcloud-speech-sdk-java</artifactId>
    <version>1.0.52</version>
</dependency>

核心代码示例

代码语言:java
复制
@Component
@Slf4j
public class FlashRecognizerService {

    private static final String SECRET_KEY = "你的SecretKey";
    private static final String SECRET_ID = "你的SecretId";
    private static final String APP_ID = "你的AppId";

    private final Credential credential = Credential.builder()
        .secretId(SECRET_ID)
        .secretKey(SECRET_KEY)
        .build();

    public String recognizer(File file) {
        log.info("开始解析音频文件:{}", file);
        FlashRecognizer recognizer = SpeechClient.newFlashRecognizer(APP_ID, credential);

        byte[] data = ByteUtils.inputStream2ByteArray(file);

        // 初始化识别请求
        FlashRecognitionRequest recognitionRequest = FlashRecognitionRequest.initialize();
        recognitionRequest.setEngineType("16k_zh"); // 中文普通话
        recognitionRequest.setFirstChannelOnly(1);  // 仅识别第一声道
        recognitionRequest.setVoiceFormat(getFileExtension(file));
        recognitionRequest.setSpeakerDiarization(0); // 不做说话人分离
        recognitionRequest.setFilterDirty(0); // 不过滤脏词
        recognitionRequest.setFilterModal(0); // 不过滤语气词
        recognitionRequest.setFilterPunc(0);  // 保留标点
        recognitionRequest.setConvertNumMode(1); // 开启数字转换
        recognitionRequest.setWordInfo(1); // 返回词级信息

        // 同步识别
        FlashRecognitionResponse response = recognizer.recognize(recognitionRequest, data);
        log.info("音频文件解析完成:{} {}", file, JSONObject.toJSONString(response));

        return response.getFlashResult().get(0).getText();
    }

    /**
     * 获取文件扩展名
     */
    public static String getFileExtension(File file) {
        String name = file.getName();
        int lastIndex = name.lastIndexOf(".");
        if (lastIndex == -1 || lastIndex == name.length() - 1) {
            return "";
        }
        return name.substring(lastIndex + 1);
    }
}

参数说明

参数

说明

默认值

EngineType

引擎类型(如 16k_zh 中文普通话)

FirstChannelOnly

是否仅识别第一个声道(1 是,0 否)

1

VoiceFormat

音频格式,如 mp3、wav、m4a

SpeakerDiarization

是否进行说话人分离(0 否,1 是)

0

FilterDirty

过滤脏词(0 不过滤,1 过滤)

0

FilterModal

过滤语气词(0 不过滤,1 过滤)

0

FilterPunc

过滤标点(0 不过滤,1 过滤)

0

ConvertNumMode

数字转换(0 关闭,1 开启)

1

WordInfo

是否返回词级信息(0 否,1 是)

1

个人简介

👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.

🚀 我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。

🧠 作为一个 Java 后端技术爱好者,我不仅热衷于探索语言的新特性和技术的深度,还热衷于分享我的见解和最佳实践。我相信知识的分享和社区合作可以帮助我们共同成长。

💡 在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。

🌐 我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。此外,我将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。我期待与你一起在技术之路上前进,一起探讨技术世界的无限可能性。

📖 保持关注我的博客,让我们共同追求技术卓越。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 接口简介
  • 前置条件
  • 实战
    • 添加 Maven 依赖
    • 核心代码示例
  • 参数说明
  • 个人简介
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档