1. 程式人生 > >基於Python與百度的AI介面的語音轉文字的簡單小程式。

基於Python與百度的AI介面的語音轉文字的簡單小程式。

匯入 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 ], 除了KeyErrorprint'音訊質量或者是其他錯誤....'return 0 AIaudio()

希望大佬們多多指正.....