我正在编写一个简单的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)
这不是我想要的,我想在不保存的情况下播放音频,我怎么能做到呢。 问题来源StackOverflow 地址:/questions/59379071/how-to-listen-to-ibm-watson-text-to-speech-result-without-saving-to-a-file-pyth
如果对外部库开放,可以使用pip install python-vlc安装用于python的vlc绑定 并使用播放器方法播放音频直接从以下内容。
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
*学分
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。