学说话,顾名思义就是你说一句,对方说一句跟你一模一样的
下面我们写的就是学说话的功能,实现的步骤分为:
1, 打开已经录好的音频文件,识别成文字
2, 接收到第一步识别好的文件,再识别成语音,保存
上代码:
1 from aip import AipSpeech 2 import time,os 3 4 """ 你的 APPID AK SK """ 5 APP_ID = '15420336' 6 API_KEY = 'VwSGcqqwsCl282LGKnFwHDIA' 7 SECRET_KEY = 'h4oL6Y9yRuvmD0oSdQGQZchNcix4TF5P' 8 9 client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) 10 11 12 # 读取文件,把自己录的音频转换成pcm格式识别 13 def get_file_content(filePath): 14 os.system(f"ffmpeg -y -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm") 15 with open(f"{filePath}.pcm", 'rb') as fp: 16 return fp.read() 17 18 19 # 识别本地文件,返回文字内容 20 def audio2text(filepath): 21 res = client.asr(get_file_content(filepath), 'pcm', 16000, { 22 'dev_pid': 1536, 23 }) 24 25 print(res.get("result")[0]) 26 27 return res.get("result")[0] 28 29 30 # 识别文字内容,转换为音频文件 31 def text2audio(text): 32 filename = f"{time.time()}.mp3" 33 result = client.synthesis(text, 'zh', 1, { 34 'vol': 5, 35 "spd": 3, 36 "pit": 7, 37 "per": 4 38 }) 39 40 # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 41 if not isinstance(result, dict): 42 with open(filename, 'wb') as f: 43 f.write(result) 44 45 return filename 46 47 48 text = audio2text("wyn.wma") 49 filename = text2audio(text) 50 51 os.system(filename)