SpringBoot之集成腾讯云语音识别

想了又想,还是把集成腾讯云的语音识别写下来。

需求:实现在线实时语音识别并返回识别内容给前端。

腾讯云官方API:语音识别Java SDK

SDK下载地址:Java SDK下载

下载下来的SDK目录结构:

SpringBoot之集成腾讯云语音识别_第1张图片

JAR包使用步骤举例如下:

1.找到:out 和 lib 文件夹中的jar文件,一共12个(包括3个source jar)。

2.将这些jar复制到您的工程文件夹中。如果第三方Jar和您已使用的Jar有重复,可选择其一。

3.在Eclipse右键“您的项目 -> Properties -> Java Build Path -> Add JARs”。

4.将这些jar文件include到您的项目中。包括:out文件夹中的:real_asr_sdk_1.5.jar和第三方的8个依赖工具包。

添加完成后,用户就可以在工程中使用实时语音SDK了。

使用方法请参考:
RealAsrSdk/src/com/tencent/cloud/asr/realtime/sdk/RasrAsynRequestSample.java // 异步
RealAsrSdk/src/com/tencent/cloud/asr/realtime/sdk/RasrRequestSample.java   // 同步

核心代码(可放到service层):

// required
AsrBaseConfig.appId = "";
AsrBaseConfig.secretId = "";
AsrBaseConfig.secretKey = "";

// optional,根据自身需求配置值
AsrInternalConfig.setSdkRole(SdkRole.ONLINE); // VAD版用户请务必赋值为 SdkRole.VAD
AsrPersonalConfig.responseEncode = ResponseEncode.UTF_8;
AsrPersonalConfig.engineModelType = EngineModelType._16k_0;
AsrPersonalConfig.voiceFormat = VoiceFormat.wav;

// optional 可忽略
// AsrGlobelConfig.NEED_VAD = 1; // 是否要做VAD,默认为1,表示要做。当前的线上版本SDK不适用,请忽略。
// AsrGlobelConfig.CUT_LENGTH = 4096; //每次发往服务端的语音分片的大小设置,默认为8KB
// AsrGlobelConfig.NOTIFY_ALL_RESPONSE = true; // 是否回调每个分片的回复,包括Vad后开始和中间的。如只需最后到的结果,可设为false。
AsrBaseConfig.PRINT_CUT_REQUEST = true; // 是否打印中间的每个分片请求到控制台
AsrBaseConfig.PRINT_CUT_RESPONSE = true; // 是否打印中间的每个分片请求的结果到控制台
// 默认使用自定义连接池,连接数可在AsrGlobelConfig中修改,更多细节参数,可直接修改源码HttpPoolingManager.java,然后自行打Jar包。
// AsrGlobelConfig.USE_CUSTOM_CONNECTION_POOL = true;
RequestSender requestSender = new RequestSender();
byte[] content = ByteUtils.inputStream2ByteArray("test_wav/8k/8k_19s.wav");
VoiceResponse voiceResponse = requestSender.sendFromBytes(content);
if (voiceResponse != null)
System.out.println("Result is: " + voiceResponse.getOriginalText());
else
System.out.println("Result is null.");

首先你把SDK自带的test_wav文件夹下的.wav语音文件识别文字出来,你就能入手了。当然你得购买腾讯云,因为要用到appId、secretId和secretKey。secretId:用于标识 API 调用者身份,可以简单类比为用户名。secretKey:用于验证 API 调用者的身份,可以简单类比为密码。

访问地址:API秘钥管理页面

SpringBoot之集成腾讯云语音识别_第2张图片

至于appID则在你的基本信息里面就能查看到,secretId和secretKey需要最高权限管理员才能生成,没有提供大家测试的secretId和secretKey,如果你用源码里面的,会报未鉴权认证的错误。

总结:

1.音频时长最好控制在60s以内

2.对.wav音频格式识别率高,mp3、sp、silk识别率不高

3.切记AsrInternalConfig.setSdkRole(SdkRole.ONLINE)要设置ONLINE,否则会没有数据

4.请勿使用歌曲.mp3格式来测试,亲测无法识别

5.源码是个单纯的Java项目,不是非得集成在SpringBoot才能用

文中有误,或者SDK集成过程中疑问的,可在评论里提出,不日会回复

你可能感兴趣的:(java,web,开发)