• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序语音识别

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

语音识别现在已经发展的很成熟了,经过比对发现百度对开发者比较友好,提供很多种语言的SDK,对python来说直接安装 pip install baidu-aip 文档写的也不错  具体参考:http://ai.baidu.com/docs#/ASR-Online-Python-SDK/top

也看了讯飞的语音,发现讯飞对开发者的支持不是太好,调用起来不方便

 

其实最关键的是微信小程序的语音格式是silk,两家都不能识别silk,需要将silk格式转为wav或者pcm格式,音频格式的转换遇到了麻烦,搞了两天才算转换成功,测试发现将语音文件转为wav识别起来成功率高

看到其他人的博客说是silk其实是base64加密后的webm格式,说是需要先将base64解密,还需要自己写解密的代码,参考:http://blog.csdn.net/rjliulei/article/details/77800760

 

自己比较懒,总是想找成熟的解决方案,终于找到一个很棒的方案:

需要安装FFmpeg和 silk-v3-decoder

FFmpeg找下安装教程即可

 silk-v3-decoder的安装参考:https://www.imooc.com/article/21550?block_id=tuijian_wz

再就是转码的命令了,参考:http://blog.csdn.net/m0_37730244/article/details/78615427

命令转码的时候有个地方看了半天才看懂 silk/decoder  /data/test.silk  /data/1.pcm

编译 silk-v3-decoder后会在里面生成一个silk的目录,里面有个decoder程序,这是转换的关键 用它执行音频格式转换

测试了好几个wav和pcm识别的效果,发现还是wav识别率高,我用的是 ffmpeg -y -f s16le -ar 24000 -ac 1 -i  /data/1.pcm  -f wav -ar 16000 -b:a 16 -ac 1  /data/1.wav 

将pcm转为wav的命令,最后调用百度的识别sdk

下面是识别的接口

# coding=utf-8
from aip import AipSpeech
import os


class ConvertVoice(object):
"""百度语音识别"""

def __init__(self):
super(ConvertVoice, self).__init__()
self.APP_ID = \'用的时候需要换成自己申请的内容\'
self.API_KEY = \'用的时候需要换成自己申请的内容\'
        self.SECRET_KEY = \'用的时候需要换成自己申请的内容\'
        self.client = AipSpeech(self.APP_ID, self.API_KEY, self.SECRET_KEY)

def get_file_content(self, filePath):
\'\'\'
读取文件
:param filePath: 文件的绝对路径
:return:
\'\'\'
try:
with open(filePath, \'rb\') as fp:
return fp.read()
except Exception as error_msg:
print(error_msg)
return error_msg

def get_str_from_voice(self, filePath):
\'\'\'
识别本地文件
:param filePath: 文件的绝对路径
:return:
\'\'\'
try:
if os.path.exists(filePath):
rt = self.client.asr(self.get_file_content(filePath), \'wav\', 16000, {
\'lan\': \'zh\'})
return rt
else:
return {"err_no": 2000, "err_msg": "文件不存在"}
except Exception as error_msg:
print(error_msg)
return error_msg


if __name__ == \'__main__\':
cv = ConvertVoice()
rt = cv.get_str_from_voice("F:/19.wav")
print(rt)

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap