gpt4 book ai didi

python - 如何在不保存到文件的情况下收听 IBM Watson Text To Speech 结果 (python)

转载 作者:行者123 更新时间:2023-12-01 06:42:36 24 4
gpt4 key购买 nike

我正在编写一个简单的 python 程序,它获取一个文本文件,然后使用 IBM Watson Text To Speech 将其转换为音频,然后使用诸如 Playsound 之类的模块直接播放音频。

大多数教程都会向您展示如何将结果保存到文件中,而不是如何将其传递给模块来播放音频

from ibm_watson import TextToSpeechV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

authenticator = IAMAuthenticator('{apikey}')
text_to_speech = TextToSpeechV1(
authenticator=authenticator
)

text_to_speech.set_service_url('{url}')

with open('hello_world.wav', 'wb') as audio_file:
audio_file.write(
text_to_speech.synthesize(
'Hello world',
voice='en-US_AllisonVoice',
accept='audio/wav'
).get_result().content)

这不是我想要的,我希望能够播放音频而不保存它,我该怎么做。

最佳答案

如果您对外部库开放,则可以使用 pip install python-vlc 安装 Python 的 vlc 绑定(bind)

并使用播放器方法直接从内容中播放音频,如下所示。

import vlc
from ibm_watson import TextToSpeechV1
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

authenticator = IAMAuthenticator('{apikey}')
text_to_speech = TextToSpeechV1(
authenticator=authenticator
)

text_to_speech.set_service_url('{url}')


#define VLC instance
instance = vlc.Instance('--input-repeat=-1', '--fullscreen')

#Define VLC player
player=instance.media_player_new()

#Define VLC media
media=instance.media_new(
text_to_speech.synthesize(
'Hello world',
voice='en-US_AllisonVoice',
accept='audio/wav').get_result().content)

#Set player media
player.set_media(media)

#Play the media
player.play()

vlc 播放器的优点是您可以直接从 URL 播放大多数媒体类型(不仅仅是 mp3),还可以执行类似播放器的选项,例如

>>> play.pause()  #pause play back
>>> player.play() #resume play back
>>> player.stop() #stop play back

* credits

关于python - 如何在不保存到文件的情况下收听 IBM Watson Text To Speech 结果 (python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59379071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com