标签:file content pat 语音识别 sample 机械 mp3 answer port
1 """ 你的 APPID AK SK """ 2 import os 3 from aip import AipSpeech, AipNlp 4 from ss import tuling 5 from ss.录音 import rec 6 7 APP_ID = ‘16027699‘ 8 API_KEY = ‘rZrseMjmXXHadrp0fbUAyb6Z‘ 9 SECRET_KEY = ‘0tFVGEW09PpPCMxXBqVrda59fQf3wY3c‘ 10 11 client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) 12 client_NLp = AipNlp(APP_ID, API_KEY, SECRET_KEY) 13 14 15 #文字合成语音 16 def text_audio(text): 17 result = client.synthesis(text, ‘zh‘, 1, { 18 ‘vol‘: 5, 19 ‘per‘: 4, 20 ‘pit‘: 8, 21 ‘spd‘: 5, 22 }) 23 24 # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 25 if not isinstance(result, dict): 26 with open(‘audios1.mp3‘, ‘wb‘) as f: 27 f.write(result) 28 return ‘audios1.mp3‘ 29 30 #语音识别--文字 31 def audio_text(filename): 32 # 识别本地文件 33 res = client.asr(get_file_content(filename), ‘pcm‘, 16000, { 34 ‘dev_pid‘: 1536, 35 }) 36 return res.get(‘result‘)[0] 37 38 39 # -转换格式--读取文件 40 def get_file_content(filePath): 41 os.system(f"ffmpeg -y -i {filePath}.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm ") 42 with open(f‘{filePath}.pcm‘, ‘rb‘) as fp: 43 return fp.read() 44 45 46 if __name__ == ‘__main__‘: 47 48 re=rec(‘file_name.wav‘) #录音,形成录音文件 49 text=audio_text(‘file_name‘) #录音转为文字 50 # print(text) 51 # score =client_NLp.simnet(text,‘今天天气‘).get(‘score‘) 52 # print(score) 53 # if score>0.58: 54 # print(‘1111‘) 55 # filename=text_audio(‘是呀,撩起呀!‘) 56 # print(filename) 57 # # os.system(f"ffplay {filename}") 58 # os.system(filename) 59 60 answer=tuling.get_help_from_tuling(text,‘mabing‘) #文字信息传递给tuling得到答复信息 61 filename = text_audio(answer) #答复信息再转为语音 62 os.system(filename) #播放
另外还有几个.py文件
tuling.py #与图灵机器人连接
1 import requests 2 3 def get_help_from_tuling(text,uid): 4 URL = ‘http://openapi.tuling123.com/openapi/api/v2‘ 5 6 data = { 7 "perception": { 8 "inputText": { 9 "text": ‘‘ 10 } 11 }, 12 "userInfo": { 13 "apiKey": "86fd93bd29e941eebe314766616a3f15", 14 "userId": "123456" 15 } 16 } 17 data["perception"]["inputText"]["text"] = text 18 data["userInfo"]["userId"] = uid 19 res = requests.post(URL, json=data) 20 print(res.json()) 21 return res.json().get(‘results‘)[0].get(‘values‘).get(‘text‘)
录音文件,通过执行函数,就会形成语音文件
1 import pyaudio 2 import wave 3 4 CHUNK = 1024 5 FORMAT = pyaudio.paInt16 6 CHANNELS = 2 7 RATE = 16000 8 RECORD_SECONDS = 6 9 # WAVE_OUTPUT_FILENAME = "Oldboy.wav" 10 def rec(file_name): 11 p = pyaudio.PyAudio() 12 13 stream = p.open(format=FORMAT, 14 channels=CHANNELS, 15 rate=RATE, 16 input=True, 17 frames_per_buffer=CHUNK) 18 19 print("开始录音,请说话......") 20 21 frames = [] 22 23 for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): 24 data = stream.read(CHUNK) 25 frames.append(data) 26 27 print("录音结束,请闭嘴!") 28 29 stream.stop_stream() 30 stream.close() 31 p.terminate() 32 33 wf = wave.open(file_name, ‘wb‘) 34 wf.setnchannels(CHANNELS) 35 wf.setsampwidth(p.get_sample_size(FORMAT)) 36 wf.setframerate(RATE) 37 wf.writeframes(b‘‘.join(frames)) 38 wf.close()
标签:file content pat 语音识别 sample 机械 mp3 answer port
原文地址:https://www.cnblogs.com/kevin-red-heart/p/10720651.html