无法播放IBM Watson的TTS(文本到语音)生成的WAV文件

时间:2019-01-03 01:34:15

标签: python python-3.x audio subprocess ibm-cloud

当前正在使用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()

1 个答案:

答案 0 :(得分:0)

[已解决]:显然我的文件目录播放WAV文件时出现问题。通过将文件接受更改为“ accept ='audio / wav'”,它可以正常工作。