随着人工智能技术的发展,一些重复性的工作可以交给系统来做,例如到期续费催缴就是一个应用场景,下面是一段用Python + 百度语音合成写一段demo。
# -*- coding:utf-8 -*-
import subprocess
import shlex
from aip import AipSpeech
# 定义常量
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
# 初始化AipSpeech对象
aipSpeech = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 需要合成语音的文本内容
content = u'尊敬的客户您好,您在我司购买的某某业务将于2018年3月30日到期,请您及时续费。'
# 调用百度语音合成方法
result = aipSpeech.synthesis(content, 'zh', 1, {'vol': 5,'per':4})
# 识别正确返回语音二进制, 错误则返回dict 参照Python SDK错误码
if not isinstance(result, dict):
# 生成语音文件
with open('e://test.wav', 'wb') as f:
f.write(result)
# 如果将语音用于呼叫中心或其他应用,需要根据实际情况对音频进行调整
# 这里使用ffmpeg对音频进行调整 码率128kbps 单声道 采样率8000HZ
error = subprocess.call(['ffmpeg', '-i', 'e://test.wav', '-ab', '128k', '-ac', '1', '-ar', '8000', 'e://test1.wav'])
请登录后评论
TOP
切换版块
错误,无法执行
啊啊,已经解决,是ffmpeg没加入环境!
你好问下报错:
E:\anaconda\lib\subprocess.py in call(timeout, *popenargs, **kwargs)
265 retcode = call(["ls", "-l"])
266 """
--> 267 with Popen(*popenargs, **kwargs) as p:
268 try:
269 return p.wait(timeout=timeout)
E:\anaconda\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)
707 c2pread, c2pwrite,
708 errread, errwrite,
--> 709 restore_signals, start_new_session)
710 except:
711 # Cleanup if the child failed starting.
E:\anaconda\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session)
995 env,
996 os.fspath(cwd) if cwd is not None else None,
--> 997 startupinfo)
998 finally:
999 # Child is launched. Close the parent's copy of those pipe
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
得如何解决?
感谢分享