from aip import AipSpeech import time,os APP_ID = \'15422825\' APP_KEY = \'DhXGtWHYMujMVZZGRI3a7rzb\' SECRET_KEY = \'PbyUvTL31fImGthOOIP5ZbbtEOGwGOoT\' client = AipSpeech(APP_ID, APP_KEY, SECRET_KEY) # 1.将wma格式文件转为pcm格式文件 def get_file_content(filePath): # 执行cmd命令os.system() os.system(f"ffmpeg -y -i {filePath} -acodec pcm_s16le -f s16le -ac 1 -ar 16000 {filePath}.pcm") with open(f"{filePath}.pcm", \'rb\') as fp: return fp.read() # 2.将音频转成文字 def audio2text(filepath): # 识别本地文件 res = client.asr(get_file_content(filepath), \'pcm\', 16000, { # 不填写lan参数生效,都不填写,默认1537(普通话 输入法模型),dev_pid参数见本节开头的表格 \'dev_pid\': 1536, }) # res.get("result")[0]) # 将录音转成文字,然后返回 return res.get("result")[0] # 3.将文字转成音频 def text2audio(text): # 给合成的音频命名 filename = f"{time.time()}.mp3" # 合成语音结果 result = client.synthesis(text, \'zh\', 1, { \'vol\': 5, "spd": 3, "pit": 7, "per": 4 }) # 识别正确返回语音二进制 错误则返回dict 参照下面错误码 if not isinstance(result, dict): with open(filename, \'wb\') as f: f.write(result) return filename # 调用方法audio2text,将语音转成文字 text = audio2text("media/weather.wma") # 调用方法text2audio,将文字转成语音 # 结果赋值给filename filename = text2audio(text) # 调用os.system()执行合成的音频文件 os.system(filename)
红框内的文件为实验所需要的:
发表于
2019-01-15 20:22
阿波罗Apollo
阅读(549)
评论(1)
编辑
收藏
举报