导入 wave #导入wave Python自带 来自 pyaudio 导入 PyAudio , paInt16 #导入pyaudio模块内的类和常量安装方法pip install pyaudio from aip import AipSpeech #导入百度AI SDK安装方法pip install baidu-aip import time #paInt16 framerate = 16000 #全局变量采样率 NUM_SAMPLES = 2000 #录音字节 shengdao = 1 #采样声道zijie = 2 TIME = 5 #录音时长 “”“ 保存录音函数 sava_wava_file ”“” def save_wave_file (文件名,数据): wf = wave.open(filename ,'wb')#以二进制形式 写入wf.setnchannels(shengdao)#声道 wf.setsampwidth(zijie)#采样字节1或2 wf.setframerate(framerate)#采样频率8000或16000 wf.writeframes(b“”。 join(data))#从文件末尾添加数据 wf.close()#关闭文件,释放缓冲 “”“ 录音函数 my_record ”“” def my_record(): pa = PyAudio()#实例化操作wave流的类 stream = pa.open(format = paInt16 ,channels = 1 ,rate = framerate ,input = True,frames_per_buffer = NUM_SAMPLES)#打开音频流,格式,频道,采样率,输入,每次的大小 my_buf = [] #空数据列表,存储流 .count = 0 #计数,退出录音循环 打印(“请说话:”) T1 = time.clock() 当 count <TIME * 5:#控制录音时间3 * 5 * 2000 = 30000 string_audio_data = stream.read(NUM_SAMPLES)#一次性录音采样字节大小 my_buf.append(string_audio_data)#每次将数据追加到存储数据的list中 计数+ = 1 打印('。') T2 = time.clock() print('一共录音' , t2-t1 ,'秒') save_wave_file('d:/123/01.wav' , my_buf) 。#将数据保存到路径文件中 stream.close() #关闭流 my_record() #调用函数 “” “你的APPID AK SK ”“” APP_ID = '' #从百度获取属于你自己的 API_KEY = '' #从百度获取属于你自己的 SECRET_KEY = '' #从百度获取属于你自己的 client = AipSpeech(APP_ID , API_KEY , SECRET_KEY)#获取链接.... #pa = input(“输入语音文件:”) “”“ 读取音频函数 getWAV ”“” 高清getWAV(路径): 与 开放 (path ,'rb')as fi: #打开音频文件,并命名别名fi return fi.read() #返回读取的音频数据 “”“ 语音识别函数 ”“” def AIaudio(): Json = client.asr(getWAV('D:/123/01.wav'),'pcm' ,16000 ,无) #请求链接,上传数据,获取返回数据。 #print(Json) 试试: s = Json [ “result” ] print(s) 返回 s [ 0 ], 除了KeyError: print('音频质量或者是其他错误....') return 0 AIaudio()
希望大佬们多多指正.....