- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将包含多种语言的文档中的文本转换为语音。当我尝试执行以下代码时,我会提取问题以清楚地记录每种语言。这种类型的混合器文本音频如何清楚地保存?
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/
似乎在 gTTS 上,除了缓慢的论点之外,没有其他选项可以更改文本到语音的语音。 我想将声音加快 5%。关于我该怎么做的任何建议? 最好的。 tts_de = gTTS("Hallo, guten t
我想使用 gTTS 模块制作 WAVE 文件。 我从 https://pypi.python.org/pypi/gTTS 下载了 gTTS 模块` 我可以用它制作一些文件并通过单击这些文件来传输声音。
当我输入命令时 .gtts import gTTS tts = gets.tts.gTTS(text='Hello', lang='en') tts.save("hello.mp3")' 它出现一个错
我正在尝试使用 gTTS 作为个人助理项目的真实文本到语音模块。当查询谷歌服务时,我可以保存 mp3 文件并使用 pygame 运行它。 from pygame import mixer from g
我想将包含多种语言的文档中的文本转换为语音。当我尝试执行以下代码时,我会提取问题以清楚地记录每种语言。这种类型的混合器文本音频如何清楚地保存? from gtts import gTTS mytext
在 python 中,使用模块 gTTS 和 VLC-python,我创建了一个文本到语音程序,这很简单。 但是让我烦恼的是,当我开始播放由 gTTS 创建的 mp3 文件时,它会跳过第一个或两个单词
我一直在使用 python 3.4 的 gTTS 模块来制作语音文本的 mp3 文件。它一直在工作,但所有的演讲都是用某种成年女性的声音。有没有办法自定义 gTTS 读取文本的声音? 最佳答案 不幸的
我想在 pydub 中操作 gtts 音频,但我不确定如何将 gtts 文件转换为 pydub 音频。 我知道我可以将谷歌文本转换为语音音频到 mp3,我知道我可以使用 pydub 导入 mp3,但是
Windows 10-64 位 我正在尝试使用一些文本转语音工具从 .txt 文档的行中读取文本,如下所示: 因此使用 pyttsx: import pyttsx engine = pyttsx.in
我想用 QtMultimedia 播放声音. 在 QMediaPlayer 的情况下,我可以播放 mp3 文件,它是由 gTTS 制作的。 (我认为没关系,但我不喜欢文件保留,除非我执行删除它的代码。
我想为将使用 gTTS 的语音助手创建 python 代码。我运行了代码,但它没有像它显示的那样工作, Traceback (most recent call last): File "/Users/
尝试使用 gTTS 模块将文本转换为语音并另存为 wav 文件。 我的代码: import gTTS text = "This is my text in the saving folder" tts
我在我的树莓派 3 上使用 gTTS(Google 文本到语音)时遇到问题。我只是做了 sudo pip3 install gTTS 安装它。但是当我运行我的代码时,我发现了这个错误: File "i
我正在使用NPM包https://www.npmjs.com/package/gtts来生成基于输入文本提供的音频文件。我希望将生成输出的速度提高到1.25,但我无法做到这一点。需要一些帮助。。下面是
我正在创建自己的聊天机器人,所以我需要 gTTS 包,但我无法在 Windows 上使用 conda 安装它,每次安装都以失败告终。 我试过:conda 安装 gTTS 还有:conda 安装-c c
我正在我的树莓派 3 上开发一个应用程序,使用 Python 的 gTTS: from gtts import gTTS import os import threading def greet_th
我有一个项目,我正在做文本到语音的转换。我的音频文件正在存储为 mp3。 但是现在,当我检查 Gtts api 时会抛出错误。我尝试搜索但找不到针对该错误的可行解决方案。 我的代码如下: def sy
在 python 2.x 中使用 gTTS 谷歌翻译模块时,出现错误 - File "/Library/Frameworks/Python.framework/Versions/2.7/lib/pyt
前我见过有关此类错误的问题,但它与 gTTS 无关。 我用的是gTTS模块。有一天,突然出现这个错误。是的,我从导入它开始就没有处理过这些代码。直到昨天,才出现这个错误。 当我执行这段代码时发生了:
我已经使用 pip 和 python 安装了 GTTS,第一对迭代似乎很好。但是现在我不断收到此错误: gtts.tts.gTTSError:来自 TTS API 的 429(请求过多)。可能的原因:
我是一名优秀的程序员,十分优秀!