学说话,顾名思义就是你说一句,对方说一句跟你一模一样的

下面我们写的就是学说话的功能,实现的步骤分为:

  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)