我的 python .CSV 到 MP3 文本到语音转换脚本没有正确地将文本传递给 API - 我该如何解决这个问题?

问题描述 投票:0回答:0

所以我一直在研究 CSV 到 MP3 生成器,以创建用于学习法语动词的音频资源。该脚本从 csv 电子表格中获取数据,并使用 gTTS 为动词生成法语音频,为翻译生成英语音频。然后将其连接成一个 mp3 文件,其中包含主要动词时态。

它一直在工作,但现在它给我错误“没有文本发送到 TTS API”。我在终端中打印了文本字符串,脚本能够从 CSV 文件中看到文本。

我可能应该指出,我不是开发人员,我正在使用 ChatGPT 来帮助我解决这个问题。 我将不胜感激任何建议。 python脚本如下。这是我的 csv 文件的一个 pastebin,其中包含动词数据。它必须编码为 ANSI 而不是 UTF-8,TTS 才能阅读带重音符号的字母:https://pastebin.com/nDuKHQCM

from gtts import gTTS
from pydub import AudioSegment
import csv
import os

def generate_audio(text, language):
    if not text:
        return AudioSegment.silent(duration=1000)
    tts = gTTS(text=text, lang=language)
    tts.save("temp.mp3")
    return AudioSegment.from_mp3("temp.mp3")

verb_tenses = []
with open("C:\\Users\\user\\Desktop\\faire.csv") as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        verb_tenses.append(row)

file_name = os.path.splitext(os.path.basename(csvfile.name))[0]
file_name_audio = generate_audio(file_name, "fr")
final_audio = file_name_audio + AudioSegment.silent(duration=2000)

for tense in verb_tenses:
    if len(tense) == 1:
        tense_audio = generate_audio(tense[0], "fr")
        final_audio = final_audio + AudioSegment.silent(duration=1000) + tense_audio + AudioSegment.silent(duration=1000)
    else:
        for i in range(0, len(tense), 2):
            verb = tense[i]
            translation = tense[i + 1]
            verb_audio = generate_audio(verb, "fr")
            translation_audio = generate_audio(translation, "en")
            final_audio = final_audio + verb_audio + translation_audio

final_audio.export("verb_tenses.mp3", format="mp3")

我指示 python 在终端中打印文本字符串,它没有任何问题。 gTTS 免费版有字数限制吗?这里提到了一种解决方法,但我不明白如何最好地将其应用于我的用例:https://stackoverflow.com/a/71868861/19089358

此脚本的目标是生成 CSV 文件中动词的完整阅读及其各自的翻译。每种语言都以各自的谷歌 TTS 语音阅读 - Fr 和 Eng.

作为额外的奖励,最好修改脚本以处理每个动词的 csv 文件文件夹的单独 mp3。

python mp3 text-to-speech gtts
© www.soinside.com 2019 - 2024. All rights reserved.