Невозможно воспроизвести файл WAV, сгенерированный TTS (текст в речь) IBM Watson - PullRequest
0 голосов
/ 03 января 2019

В настоящее время работает с примером скрипта, найденным в GitHub IBM Watson:

Когда я запускаю скрипт, он отлично работает, создавая 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 голосов
/ 03 января 2019

[решено]: Видимо, была проблема с моим файловым каталогом, воспроизводящим файлы WAV. Изменив прием файла на "accept = 'audio / wav'", он работал нормально.

...