如何解决Pygame mix.music.load() 不适用于 gTT
我正在尝试仅使用 import pandas as pd
df = pd.DataFrame({ "text":["RT @ Bristol: From 9\/11 truthers to ...","Bernie Sanders reveals that the family f...","TRUE TRUE TRUE","RT @ cove_93: You kNow what would be funny...."]})
df = df[~df.text.str.startswith("RT")]
# df = df[~df.text.str.contains("RT")] # in case you want "contains" instead of "startswith"
播放 gTTs 语音。我不想将声音保存到文件中,所以我将其保存到 pygame.mixer.music.load()
流中。 BytesIO
返回 gTTs
音频,我知道 .mp3
对其支持有限,因此我尝试使用 pygame
将 .mp3
音频转换为 .wav
模块,但如果不将其保存到文件中,我就找不到这样做的方法。如何以任何可能的方式解决此问题?
pydub
from pygame import mixer
from gtts import gTTS
def play(buffer):
buffer.seek(0)
mixer.music.load(buffer) #Load the mp3
print("Sound loaded. Time to play!")
mixer.music.play() #Play it
def generate_voice(text,accent):
mp3_fp = BytesIO()
tts = gTTS(text)
tts.write_to_fp(mp3_fp)
return mp3_fp
text = "Hi there"
buffer = generate_voice(text,accent)
play(buffer)
返回的错误:pygame.mixer.music.load()
解决方法
我通过使用 pydub
将音频转换为 wav
格式解决了这个问题:
def play(buffer):
mixer.init()
mixer.music.load(buffer) #Load the mp3
print("Sound loaded. Time to play!")
mixer.music.play() #Play it
def generate_voice(text,lang):
fp = BytesIO()
wav_fp = BytesIO()
tts = gTTS(text=text,lang=lang)
tts.write_to_fp(fp)
fp.seek(0)
sound = AudioSegment.from_file(fp)
wav_fp = sound.export(fp,format = "wav")
return wav_fp
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。