【问题标题】:Unable to play WAV file generated by IBM Watson's TTS (Text To Speech)无法播放 IBM Watson 的 TTS(文本到语音)生成的 WAV 文件
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    相关资源
    最近更新 更多