基于百度人工智能语音识别 REST API 的开源库 libasrutil

转载时请注明出处和作者联系方式:http://blog.csdn.net/mimepp

作者联系方式:YU TAO <yut616 at sohu dot com>

关键字: baidu asr,automatic speech recognition,百度语音识别,语音识别,翻译,translate, REST API,VAD,Voice Active Detection,http chunk, AI,人工智能

libasrutil 是基于百度人工智能语音识别 REST API 的一个 ASR (automatic speech recognition) 工具库,这里将相关内容做一个记录。

asrutil is a utility for ASR (automatic speech recognition), it is based on baidu asr sample.

github 开源项目地址

https://github.com/mimepp/libasrutil

语音识别引擎

对比了国内若干语音识别的引擎,包括讯飞、百度、思必驰、阿里,最后根据自己的实用需要选择了百度的语音识别。

百度的语音识别没有访问次数限制,速度和识别度也可以,而且百度还有中英等多语言互译翻译引擎,比较满足应用的需要。

因为要使用 C 语言来做嵌入系统上的开发,所以主要参考的是百度的 REST API 的 sample 程序,但其太过简单,需要自己做大量的开发才有好的实用价值。

HTTP chunk

虽然官方没说支持 http chunk 分块发送方式,但实际中可以用此方式来优化数据的发送过程。否则要等数据全部获得后再一次发送出去,等待的周期会过长,影响识别时间。

见 libasrutil/src/tests/ 下含 chunked 的文件名例子,很实用。

如一分钟的语音,可以提前分多段发送出去做语音转换,而不是等一分钟后才去做转换。

VAD (Voice Active Detection)

在实际应用中,发现处理连续的语音无法正确的断句,后来增加了 VAD 功能后,就可以在中间有停顿时作为断句,开始做语音识别,从而缩短了显示识别结果的周期。

这里实现 VAD 的原理就是判断数据是否在正负交替,即穿越水平0轴,说明是有语音数据的。而且这时的数据是有一定的能量的,说明是说话的声音,而不是干扰的噪声。

见 libasrutil/src/asrutil_util.c 中 asrutil_vad_check 部分。

应用例子见 libasrutil/src/tests/ 下含 vad 的文件名,很好很强大。

特别感谢 曾福 的文章 https://zhuanlan.zhihu.com/p/28805254 。

测试文件

在 libasrutil/media_files 下放置了很多测试用的文件,有中文的语音内容,也有英文的语音内容,你可以直接使用,不用再自己去转换为 1ch 16bit 8khz pcm (百度语音识别要求的格式)了。

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值