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

    歌词来源:http://music.163.com/#/song?id=22704407 HOLI HOLI DAY [HOLI HOLI DAY] 뚜뚜 뚜루루 [ddu-ddu ddu-lu-lu ...

  2. Alpha发布_文案+美工

    团队名称:探路者 1蔺依铭:http://www.cnblogs.com/linym762/ 2张恩聚:http://www.cnblogs.com/zej87/ 3米赫:http://www.cnb ...

  3. plsql 永久注册码

    注册码:Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769 password:xs374ca 可用

  4. 0324操作系统cmd功能的扩展

    需求:1.实现清屏功能 2.实现不区分大小写功能 3.添加功能能添加新的命令符 设计:1.使用system("cls")清屏. 2.使用strlwr()函数把大写都变成小写 3.( ...

  5. 如何打开tensorboard观测训练过程

    TensorBoard是TensorFlow下的一个可视化的工具,能够帮助研究者们可视化训练大规模神经网络过程中出现的复杂且不好理解的运算,展示训练过程中绘制的图像.网络结构等. 最近本人在学习这方面 ...

  6. springMVC 流程

    springMVC流程控制 SpringMVC流程 web.xml 中配置 org.springframework.web.servlet.DispatcherServlet 这一步其实和spring ...

  7. WPF/MVVM快速指引

    简介 最近微软推出了UWA,又是一波新的C#+xaml学习热.好多小伙伴都对MVVM感觉很好奇,但是有些地方也有点难以理解.特意写了这边文章,希望对你有帮助. 这边文章会很长,所以我会用几个例子的形式 ...

  8. 配置ip,使你的虚拟机可以被别人访问到,搭建服务器必备

    我么一般配置虚拟机的时候,我们总是喜欢使用虚拟网段,但是这样别人有可能ping不通我的虚拟机的. 若是我们想要别人ping我们的ip ,则我们要跟改以下几个操作: 在我们的网络源的源模式中,你若是想在 ...

  9. 【Leetcode】322. Coin Change

    You are given coins of different denominations and a total amount of money amount. Write a function ...

  10. Excel poi API基础教程!

    原文转子: http://blog.csdn.net/yellowd1/article/details/44628701 登录|注册     yellowd1的专栏       目录视图 摘要视图 订 ...