gpt4 book ai didi

python - 如何在 'gTTS' 中使用多语言输入单行?

转载 作者:行者123 更新时间:2023-12-05 02:33:55 26 4
gpt4 key购买 nike

我想将包含多种语言的文档中的文本转换为语音。当我尝试执行以下代码时,我会提取问题以清楚地记录每种语言。这种类型的混合器文本音频如何清楚地保存?

from gtts import gTTS
mytext = 'Welcome to gtts! আজ একটি ভাল দিন। tumi kemon acho? ٱلْحَمْدُ لِلَّٰهِ'
language = 'ar' # arabic
myobj = gTTS(text=mytext, tld='co.in', lang=language, slow=False)
myobj.save("audio.mp3")

最佳答案

仅使用文字转语音是不够的,因为它只能使用一种语言。
为了解决这个问题,我们需要检测句子每个部分的语言。
然后通过文本到语音运行它,并将其附加到我们最终的口语句子中。
最好使用一些神经网络(有很多)来为您进行分类。
为了证明概念,我使用 googletrans 检测句子每个部分的语言,并使用 gtts 从中制作 mp3 文件。

它不是防弹的,尤其是阿拉伯语文本。 googletrans 以某种方式检测到gtts 无法识别的不同语言代码。出于这个原因,我们必须使用 code_table 来选择适用于 gtts 的适当语言代码。

这是工作示例:

from googletrans import Translator
from gtts import gTTS

input_text = "Welcome to gtts! আজ একটি ভাল দিন। tumi kemon acho? ٱلْحَمْدُ لِلَّٰه"
words = input_text.split(" ")
translator = Translator()
language, sentence = None, ""

lang_code_table = {"sd": "ar"}

with open('output.mp3', 'wb') as ff:
for word in words:
if word == " ":
continue
# Detect language of current word
word_language = translator.detect(word).lang

if word_language == language:
# Same language, append word to the sentence
sentence += " " + word
else:
if language is None:
# No language set yet, initialize and continue
language, sentence = word_language, word
continue

if word.endswith(("?", ".", "!")):
# If word endswith one of the punctuation marks, it should be part of previous sentence
sentence += " " + word
continue

# We have whole previous sentence, translate it into speech and append to mp3 file
gTTS(text=sentence, lang=lang_code_table.get(language, language), slow=False).write_to_fp(ff)

# Continue with other language
language, sentence = word_language, word

if language and sentence:
# Append last detected sentence
gTTS(text=sentence, lang=lang_code_table.get(language, language), slow=False).write_to_fp(ff)

显然速度不快,不适合较长的文本。
它还需要更好的分词器和正确的错误处理。
同样,这只是概念证明。

关于python - 如何在 'gTTS' 中使用多语言输入单行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70852444/

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