【发布时间】:2019-05-29 15:07:13
【问题描述】:
目前正在使用 IBM Watson 的 GitHub 上的示例脚本:
当我运行脚本时,它可以完美地创建 WAV 文件。但是,当我尝试在脚本中播放它时,它只是运行并且从不播放。我尝试使用 PyAudio、Os、Subprocess 和其他第三方库来播放文件,但是没有任何效果。在尝试在脚本中播放文件之前,我必须先对文件做些什么吗?我假设它与它以二进制形式编写有关,这是脚本所要求的,但我在编程方面仍然太新,无法理解如何解决问题。
我将在下面附上我的完整脚本,其中包含个人信息的占位符。谢谢!
# coding=utf-8
from os.path import join, dirname
from watson_developer_cloud import TextToSpeechV1
from watson_developer_cloud.websocket import SynthesizeCallback
import subprocess
service = TextToSpeechV1(url='EXAMPLE URL TO API', iam_apikey='EXAMPLE API KEY')
with open(join(dirname(__file__), '..EXAMPLE PATH../resources/output2.wav'),'wb') as audio_file:
response = service.synthesize("What's the weather?", accept='audio/wav', voice="en-US_MichaelVoice").get_result()
audio_file.write(response.content)
def audio_call():
audio_file_path = "..EXAMPLE PATH../resources/output2.wav"
return subprocess.call(["afplay", audio_file_path])
audio_call()
【问题讨论】:
-
您确定正在生成的
.wav文件可以播放吗?尝试使用其他应用程序手动执行此操作以验证这一点。 -
是的,我是通过iTunes等应用打开的。在那里玩得很好。
-
audio_file_path是否包含空格字符?您可能必须将其括在双引号字符中。另外,您是否收到任何类型的错误消息? -
运行
file "..EXAMPLE PATH../resources/output2.wav"对文件有什么影响? -
@martineau 我试了一下,不幸的是仍然没有。
标签: python python-3.x audio subprocess ibm-cloud