您好,登錄后才能下訂單哦!
使用python怎么制作一個語音聊天機器人?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
import requests import time import pygame from datetime import datetime from aip import AipSpeech from pyaudio import PyAudio,paInt16 import wave import os framerate=8000 NUM_SAMPLES=2000 channels=1 sampwidth=2 TIME=2 def 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*6:#控制錄音時間 string_audio_data = stream.read(NUM_SAMPLES) my_buf.append(string_audio_data) count+=1 print('.') save_wave_file('0001.wav',my_buf) stream.close() ##def play(): ## wf=wave.open(r"D:/41125.mp3",'rb') ## p=PyAudio() ## stream=p.open(format=p.get_format_from_width(wf.getsampwidth()),channels= ## wf.getnchannels(),rate=wf.getframerate(),output=True) ## while True: ## data=wf.readframes(chunk) ## if data=="":break ## stream.write(data) ## stream.close() ## p.terminate() ## 這里大家需要改成自己的ID和KEY APP_ID = '11****843' API_KEY = '3Mnv***8**88******GbXa' SECRET_KEY = '147***8*88****1227684' aipSpeech = AipSpeech(APP_ID, API_KEY, SECRET_KEY) def getText(url): text = requests.post(url).json() return text['text'] ## ##key = '6ddc57c5761a4c62a30ea840e5ae163f' #api = 'http://www.tuling123.com/openapi/api?key=' + key +'&info =' key = '8b005db5f57556fb96dfd98fbccfab84' api = 'http://www.tuling123.com/openapi/api?key=' + key + '&info=' ## while True: ## info = input("我說\n") ## chunk=2014 my_record() print("錄音完成") def get_file_content(filePath): with open(filePath,'rb') as fp: return fp.read() a = aipSpeech.asr(get_file_content('0001.wav '),'wav',8000,{}) print(a) b = str(a['result']) info = b url = api + info #print(url) text_01 = getText(url) print("機器人回\n",text_01) now = datetime.now().strftime("%Y-%m-%d_%H_%M_%S") filename_01 = now + ".mp3" result = aipSpeech.synthesis( text_01,'zh',1,{'vol': 5,'per' : 2} ) if not isinstance(result, dict): with open(filename_01, 'wb') as f: f.write(result) print("--------------------------------------") time.sleep(1) pygame.mixer.init() print("語音1") file= filename_01 track = pygame.mixer.music.load(file) pygame.mixer.music.play() time.sleep(15) pygame.mixer.music.stop() pygame.quit()
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。