利用百度语言识别API实现语音识别python
来源:互联网 发布:阿富汗猎犬知乎 编辑:程序博客网 时间:2024/05/16 00:28
语音识别协议
支持:中文,粤语,英文
访问地址:http://vop.baidu.com/service_api
1.登陆百度语言http://yuyin.baidu.com/,注册一个账号,开通服务,获取 APIkey,SecretKey.
2.利用pyaudio实现录音部分,生成Wav文件
3.利用Pycurl扩展包上传百度语音识别,并返回结果。
import pycurlimport wavefrom pyaudio import PyAudio,paInt16import urllib.requestimport jsonframerate=8000NUM_SAMPLES=2000channels=1sampwidth=2TIME=2def save_wave_file(filename,data): '''save the date to the wavfile''' wf=wave.open(filename,'wb') wf.setnchannels(channels) wf.setsampwidth(sampwidth) wf.setframerate(framerate) wf.writeframes(b"".join(data)) wf.close()def my_record(): pa=PyAudio() stream=pa.open(format = paInt16,channels=1, rate=framerate,input=True, frames_per_buffer=NUM_SAMPLES) my_buf=[] count=0 while count<TIME*10:#控制录音时间 string_audio_data = stream.read(NUM_SAMPLES) my_buf.append(string_audio_data) count+=1 print('.') save_wave_file('01.wav',my_buf) stream.close()def get_token(): apiKey="RbjILzdAQUWjXIfEjLDvGOXQ" # secreKey="fb307764e9761cd8573b2d42913c2da0" auth_url="https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id="+apiKey+"&client_secret="+secreKey; res=urllib.request.urlopen(auth_url) json_data=res.read() print('type:',type(json_data)) return json.loads(json_data)['access_token']def dump_res(buf): print('buf=',buf) my_temp=json.loads(buf) if(my_temp['err_no']==3301): print('识别失败') return my_list=my_temp['result'] print(type(my_list)) print('mylist[0]: ',my_list[0]) print(my_list)def use_cloud(token): fp=wave.open('01.wav','rb') nf = fp.getnframes() # 获取文件的采样点数量 print('sampwidth:', fp.getsampwidth()) print('framerate:', fp.getframerate()) print('channels:', fp.getnchannels()) f_len = nf * 2 # 文件长度计算,每个采样2个字节 audio_data = fp.readframes(nf) cuid="XXXXXXXXXXX" srv_url='http://vop.baidu.com/server_api' + '?cuid=' + cuid + '&token=' +token http_header=[ 'Content-Type:audio/pcm;rate=8000', 'Content-Length: %d' % f_len ] c=pycurl.Curl() c.setopt(pycurl.URL,str(srv_url)) #curl doesn't support unicode 传递一个网址 #c.setopt(c.RETURNTRANSFER,1) c.setopt(c.HTTPHEADER,http_header)#传入一个头部,只能是列表,不能是字典 c.setopt(c.POST,1)#发送 c.setopt(c.CONNECTTIMEOUT,80)#尝试连接时间 c.setopt(c.TIMEOUT,80)#下载时间 c.setopt(c.WRITEFUNCTION,dump_res) c.setopt(c.POSTFIELDS,audio_data) c.setopt(c.POSTFIELDSIZE,f_len) c.perform() # pycurl.perform() has no return valif __name__ == '__main__': my_record() print('over!!!!') use_cloud(get_token())
阅读全文
0 0
- 利用百度语言识别API实现语音识别python
- 【Python】调用百度REST API实现语音识别
- 【Python】调用百度REST API实现语音识别
- python实现百度语音之语音识别
- python调用百度语音识别 api
- Python——百度语音识别api
- python使用百度语音识别API注意事项
- 百度语音API的Python语音识别实践
- 一个简单的语音识别实现---百度在线语音识别REST API SDK(Python)简单使用
- 百度语音识别API初探
- 百度语音识别API的使用样例(python实现)
- 使用百度API实现语音识别——in python (2015-02-21 15:43:15)
- 语音识别---讯飞科大api实现
- python借用百度语音识别实现大音频文件语音识别功能
- html5录音+百度语音实现语音识别
- python-百度语音识别与google语音识别测试
- 百度语音识别API使用小结
- 【记录】百度语音识别之REST API
- Java 8系列之重新认识HashMap
- 【python 视频爬虫】python下载头条视频
- 第一篇博客 unity的小问题
- Linux jar包 后台运行
- Mac环境下gitbook导出PDF
- 利用百度语言识别API实现语音识别python
- 【Python实例】Python学习注意
- 数学之美9
- 【NIO详解】Buffer源码剖析
- Android应用程序——四大组件之Activity
- latex
- 应用层读写I2C信息,可读写寄存器为8位或者16位的reg信息
- 加密、解密详解及CA的实现
- 【网络编程】非阻塞connect详解