项目需求:手机app或者微信里面的amr语音文件转换成文字的功能
实现方式:后台接收amr语音文件→调用百度语音识别接口转文字→返回结果
遇到的问题:百度语音识别接口只能识别标准的amr语音文件,微信里面的amr语音文件为定制版(非标准格式)
解决方式:用ffmpeg将amr语音文件转成百度能识别的标准pcm文件,详细参数参考自百度语音识别开发文档
https://ai.baidu.com/ai-doc/SPEECH/7k38lxpwf
一下是功能实现的部分代码:
1.引入jave项目(一个封装了ffmpeg的开源项目,用于格式转换)
<!--音频转换-->
<dependency>
<groupId>com.github.dadiyang</groupId>
<artifactId>jave</artifactId>
<version>1.0.5</version>
</dependency>
2.代码实现(百度语音识别的具体代码略,可以参照官方文档https://ai.baidu.com/ai-doc/SPEECH/pk4o0bkx8)
/**
* 语音识别文件上传接口
* @return
*/
@PostMapping("/api/speech/upload")
@ApiOperation(value = "语音识别文件上传接口")
@ApiImplicitParams({
@ApiImplicitParam(value = "音频文件(MultipartFile格式)", name = "file",paramType = "query",type = "MultipartFile")})
public AjaxJson speechDistinguish(MultipartFile file){
AjaxJson j = new AjaxJson();
try {
if(file==null){
j.setSuccess(fal