前几天研究了一下在树莓派上使用麦克风,目的是实现树莓派上的语音识别。

现在要实现语音识别不需要自己实现算法,只要能把声音通过网络传给语音识别服务提供商就可以了,语音识别在服务提供商的服务器上完成,然后把结果返回过来。这种模式对于我这种不追求自主知识产权的人来说已经足够了。
目前语音识别服务主要有百度、科大讯飞、google。
百度提供ios、安卓、linux等的sdk,同时还提供基于http的访问接口,用户只要能实现http post method就可以了,可以说非常的方便。百度的开放平台审核效率还是很高的,我在大年初一申请语音识别API权限,他们初三就审核通过了!大年初三!通过了!!!用起来也很简单,半天时间就可以调通的了。
科大讯飞也提供各主流平台的sdk,另外有树莓派的sdk可供申请(还没拿到,不知道是不是基于http的)。讯飞能做到目前的程度,一定有其过人之处,希望有机会能试用一下。
google,呵呵,国内不要用了吧。
下面记录一下百度语音识别API的开发过程:
1. 在百度开放平台新建工程,申请到ID、API key、secret key以及开发文档等。
2. 用上面的数据到百度oauth获取access token。
3. 把要识别的语音数据按照百度文档中的格式传到其服务器上。我使用的是隐式上传,需要对语音数据做base64编码,和另外一些格式信息组成json数据,post到服务器端。
4. 服务器返回识别结果的json文本,对结果进行解析即可。
百度提供了c++、java等的例子工程,太复杂了。python 50行代码搞定的事儿,c++要一堆代码,还是不要看了。
1 #! /usr/bin/env python3
  2
  3 import baidu_oauth
  4 import uuid
  5 import base64
  6 import json
  7 import urllib.request
  8 import sys
  9
 10 asr_server = 'http://vop.baidu.com/server_api'
 11 baidu_oauth_url = 'https://openapi.baidu.com/oauth/2.0/token/'
 12 client_id = 'xxx'
 13 client_secret = 'xxx'
 14 access_token = baidu_oauth.get_baidu_access_token(baidu_oauth_url, client_id, client_secret)
 15 mac_address=uuid.UUID(int=uuid.getnode()).hex[-12:]
 16
 17 def baidu_asr(speech_file):
 18         with open(speech_file, 'rb') as f:
 19                 speech_data = f.read()
 20         speech_base64=base64.b64encode(speech_data).decode('utf-8')
 21         speech_length=len(speech_data)
 22         data_dict = {'format':'wav', 'rate':8000, 'channel':1, 'cuid':mac_address, 'token':access_token, 'lan':'zh', 'speech':speech_base64, 'len':speech_length}
 23         json_data = json.dumps(data_dict).encode('utf-8')
 24         json_length = len(json_data)
 25
 26         request = urllib.request.Request(url=asr_server)
 27         request.add_header("Content-Type", "application/json")
 28         request.add_header("Content-Length", json_length)
 29         fs = urllib.request.urlopen(url=request, data=json_data)
 30
 31         result_str = fs.read().decode('utf-8')
 32         json_resp = json.loads(result_str)
 33         return json_resp
 34
 35 json_resp = baidu_asr(sys.argv[1])
 36 print(json_resp)

使用百度API实现语音识别——in python相关推荐

  1. python aipspeech_Python调用百度API实现语音识别(二)

    咪哥杂谈 本篇阅读时间约为 5 分钟. 1 前言 上一篇文章里,大致介绍了百度官方 api 的一些前置准备工作. 想回顾的同学,可以看完本篇在下面找到历史链接. 今天就来上手实战编码,体验一下代码实现 ...

  2. python通过调用百度api实现语音识别(超详细)

    python通过调用百度api实现语音识别(超详细) 2021.04.18:该文章是在18年,初学Python时写的,所以功能仅限于当时可用,至于现在(貌似依然可用)和以后就不确定了.完整的demo也 ...

  3. mac下载的api文档怎么_Python调用百度API实现语音识别(二)

    Python调用百度API实现语音识别(二) 前言 上一篇文章里,大致介绍了百度官方 api 的一些前置准备工作. 想回顾的同学,可以看完本篇在下面找到历史链接. 今天就来上手实战编码,体验一下代码实 ...

  4. 百度api语音识别一直“无内容”_PHP开发语音识别功能

    语音识别的功能的应用场景 将语音实时识别为文字,适用于语音聊天.语音输入.语音搜索.语音下单.语音指令.语音问答等多种场景. 我们还是利用百度API,语音识别功能,给大家讲解如何使用.API主要就是要 ...

  5. 假期之不务正业—— Qt+FFmpeg+百度api进行视频的语音识别

    假期之不务正业--Qt+FFmpeg+百度api进行视频的语音识别 一.前言 二.FFmpeg进行音频提取和重采样 三.对音频分段 四.百度api调用 五.Qt编程的一些补充 六.结语 一.前言 现在 ...

  6. 【python】tkinter界面化+百度API—聊天机器人(四)

    目录 百度API tkinter界面设计 完整代码 实现结果如下: 百度API 这里聊天机器人的功能也是结合第一篇的语音识别([python]tkinter界面化+百度API-语音识别_张顺财的博客- ...

  7. python百度API实现语音转文字

    语音识别转文字可以大大提高我们的办公效率,接下来我将分享我实现语音转文字的代码. 首先让我们来梳理一下思路: 自动让python内部实现语音转文字无疑是相当困难的,所以我们会需要借助外界的一个平台来帮 ...

  8. opencv+python机读卡识别(四)百度API进行数字识别

    2019独角兽企业重金招聘Python工程师标准>>> 第一部分预处理:https://my.oschina.net/u/3268732/blog/1236298 第二部分图像切割: ...

  9. python运行界面英文翻译_python使用百度api翻译中英文

    python使用百度api翻译中英文 写程序取变量名的时候,常常需要翻译单词,或者将中文翻译成英语.有道词典,必应词典都很好,可是...命令行习惯了还是觉得用在cmd里面调出程序使用起来也许会更爽.于 ...

最新文章

  1. jeecg智能开发平台参与-2013年度中国优秀开源项目评比
  2. lintcode-easy-Insertion Sort List
  3. shell脚本之变量的作用域
  4. python集合类型的操作符_Python 语言学习 第一篇:数据类型(数字,集合,布尔类型,操作符)...
  5. LeetCode 169. 求众数(摩尔投票)
  6. 粒子群优化算法(Particle Swarm Optimization)的 Matlab(R2018b)代码实现
  7. 0 改造,让单体/微服务应用成为 Serverless Application
  8. 检验int值在list中是否存在_R语言统计与绘图:卡方检验
  9. 欧洲语言学习统一标准C1C2音频,北京通州区有没有西班牙语培训班(为何选择西班牙语)...
  10. 怎么取消打开文件的安全警告?
  11. QOS之NBAR 下
  12. 处理之后的图像句柄传到显示框_PS基本原理,图像变换与变形操作,移动图像小技巧...
  13. Linux命令 ls -l s输出内容含义详解
  14. (转)python3之模块io使用流的核心工具
  15. c语言下列编程段的错误,C语言编程题目(有错误)
  16. 菜鸟教程html码字有颜色,零基础也能看懂!写给设计师的前端小知识之网页排版(附实战)...
  17. 《潜伏在办公室》 作者:陆琪
  18. 悟彻菩提真妙理 断魔归本合元神
  19. Java写入磁盘阵列_磁盘阵列方案
  20. [Git] 009 逆转未来

热门文章

  1. 关于quick-cocos2d-x
  2. MyEclipse 为xml添加本地的dtd文件
  3. xml获取配置DataTable
  4. 幻灯片:LINQ Inside, Part 1
  5. Python的list方法append和extend有什么区别?
  6. 粘包问题以及解决方法
  7. Python 之 Django框架( Cookie和Session、Django中间件、AJAX、Django序列化)
  8. bootstrapTable refresh 方法使用简单举例
  9. java获取当前月第一天和最后一天,上个月第一天和最后一天
  10. Airflow 中文文档:使用测试模式配置