语音识别现在已经发展的很成熟了,经过比对发现百度对开发者比较友好,提供很多种语言的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)

微信小程序语音识别的更多相关文章

  1. 微信小程序语音识别开发过程记录 微信小程序silk转mp3 silk转wav 以及ffmpeg使用

    说说最近在开发微信小程序语音识别遇到的问题吧 最先使用微信小程序录音控件可以拿到silk格式,后来微信官方又支持mp3格式了 但是我们拿到这些格式以后,都还不能直接使用,做语音识别,因为目前百度的语音 ...

  2. 微信小程序语音识别服务搭建全过程解析(项目开源在github)

    silk v3录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) ## 重要的写在前面 重要事项一: 目前本文中提到的API已支持微信小程序录音文件格式:silk v ...

  3. 微信小程序语音识别服务搭建全过程解析(https api开放,支持新接口mp3录音、老接口silk录音)

    silk v3(或新录音接口mp3)录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) 重要的写在前面 重要事项一: 所有相关更新,我优先更新到我个人博客中,其它地方 ...

  4. 支持语音识别、自然语言理解的微信小程序(“遥知之”智能小秘)完整源码分享

    记录自己搭建https的silk录音文件语音识别服务的调用过程,所有代码可在文中找链接打包下载 >>>>>>>>>>>>> ...

  5. 微信小程序学习指南

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  6. 微信小程序语音与讯飞语音识别接口(Java)

    项目需求,需要使用讯飞的语音识别接口,将微信小程序上传的录音文件识别成文字返回 而微信小程序上传的文件格式是silk的,而讯飞接口能识别wav 格式的文件,所以需要将小程序上传的silk文件转成wav ...

  7. 微信小程序语音与讯飞语音识别接口(Java),Kronopath/SILKCodec,ffmpeg处理silk,pcm,wav转换

    项目需求,需要使用讯飞的语音识别接口,将微信小程序上传的录音文件识别成文字返回 首先去讯飞开放平台中申请开通语音识别功能 在这里面下载sdk,然后解压,注意appid与sdk是关联的,appid在初始 ...

  8. 语音识别功能_微信小程序代办清单任务

    最近想给自己的代办清单任务微信小程序想加个语音识别识别功能,废话不多说,直接说重点,语音识别使用的是百度语音识别api,因为微信小程序的录音输入文件目前只能是mp3或aac 但是百度语音识别不支持这两 ...

  9. 微信小程序开发语音识别文字教程

    微信小程序开发语音识别文字教程 现在后台 添加插件 微信同声传译 然后app.json 加入插件 "plugins": { "WechatSI": { &quo ...

随机推荐

  1. 笔试题——C++字符排序

    题目:字符排序 题目介绍:输入一组以空格隔开的字数串,将它们奇数位升序排序,偶数位降序排序,再重新输出成新的字数串. 例: 输入: 4 6 2 3 6 7 8 1 奇数位:4 2 6 8 ——2 4 ...

  2. [T-ARA][Falling U]

    歌词来源:http://music.163.com/#/song?id=27506041 作词:韩尚元 [作词:韩尚元] 作曲:韩尚元 [作曲:韩尚元] Love is pain Love is pa ...

  3. C++ 根据图片url 批量 下载图片

    最近需要用到根据图片URL批量下载到本地的操作.查找了相关资料,记录在这儿. 1.首先在CSV文件中提取出url ifstream fin("C:\\Users\\lenovo\\Deskt ...

  4. nginx 根据get参数重定向(根据电视访问的mac地址传递的值,来重定向访问别的url地址,这样就可以进行单台的测试环境。。)

    背景是这样的: 公司要做所有客户端的迁移到别的云平台,但又担心会有问题,所以考虑分批次迁移过去,这样就需要迁移部分用户,因为客户端刷但都是统一但rom包,不能轻易发生改动,所以决定用重定向方式将部分客 ...

  5. Scrum立会报告+燃尽图(十月十六日总第七次):总结工作经验,商讨未来策略

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2197 Scrum立会master:李文涛 一.小组介绍 组长:付佳 组员 ...

  6. 第九周个人PSP

    11.10--11.16本周例行报告 1.PSP(personal software process )个人软件过程. C(类别) C(内容) ST(开始时间) ET(结束时间) INT(间隔时间) ...

  7. POJ 2376 (区间问题,贪心)

    题目链接:http://poj.org/problem?id=2376 题目大意:选择一些区间使得能够覆盖1-T中的每一个点,并且区间数最少 题目分析:这道题目很明显可以用贪心法来解决.但题目没有看起 ...

  8. HDU 5179 beautiful number 数位dp

    题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5179 bc(中文): http://bestcoder.hdu.edu.cn/contes ...

  9. nginx 简介  http://nginx.org

    Nginx(一) 官方技术文档网站:http://nginx.org Nginx的特性 1:各功能基于模块化设计,扩展性好   2:支持平滑重启,实现应用不下线部署   3:在多并发请求模型下,内存消 ...

  10. oracle 行转列和列转行

    WITH L AS ( ), m AS ( SELECT A.LV AS LV_A, B.LV AS LV_B, TO_CHAR(B.LV) || 'x' || TO_CHAR(A.LV) || '= ...