首页 > 编程问答 >乌尔都语 Tts 可与 python 一起使用

乌尔都语 Tts 可与 python 一起使用

时间:2024-07-28 08:56:39浏览次数:12  
标签:python text-to-speech torch

我想为乌尔都语创建 TTS 有什么帮助吗? 我发现很少有模特拥抱着脸

TheUpperCaseGuy/Guy-Urdu-TTS pocketmonkey/speecht5_tts_urdu Talha185/speecht5_finetuned_urdu_TTS

但我无法从文本创建或生成高质量的语音 任何人都可以帮忙吗???

import torch
from transformers import SpeechT5ForTextToSpeech, SpeechT5HifiGan, AutoTokenizer
import soundfile as sf
from datasets import load_dataset

# Load the model and tokenizer
model_name = "pocketmonkey/speecht5_tts_urdu"
model = SpeechT5ForTextToSpeech.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")

# Load speaker embeddings
embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
speaker_embeddings = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)

# Prepare the text input
urdu_text = ",HELLO HOW ARE YOU,AUR BATAO KESE HO AAJ KAL?آپ کیسے ہیں؟"  # "How are you?" in Urdu
inputs = tokenizer(text=urdu_text, return_tensors="pt")

# Generate speech
speech = model.generate_speech(inputs["input_ids"], vocoder=vocoder, speaker_embeddings=speaker_embeddings)

# Save the audio file
sf.write("output.wav", speech.numpy(), samplerate=16000)

print("Audio saved as 'output.wav'")`

但结果还不够好


当然,我可以帮助你改善乌尔都语文本转语音的质量。你遇到的问题很常见,因为为像乌尔都语这样的低资源语言创建一个高质量的 TTS 系统可能具有挑战性。以下是你可以尝试的一些步骤,以改进你的乌尔都语 TTS 输出:

1. 微调和训练数据:

  • 更多数据,更好的质量: TTS 模型的质量高度依赖于训练数据的数量和质量。寻找更多公开可用的乌尔都语 TTS 数据集,或考虑创建一个你自己的数据集。
  • 数据增强: 通过添加噪声、更改音调或速度以及添加混响等技术来增强你的现有数据。
  • 微调: 使用公开可用的乌尔都语 TTS 模型(如你提到的那些模型)作为基础,使用你收集到的额外数据对模型进行微调。

2. 声码器选择:

  • 实验: 你正在使用 SpeechT5 HifiGan 声码器,这很好,但值得尝试其他声码器,如 WaveGlow 或 MelGAN,看看哪一个能产生最佳结果。
  • 微调: 如果可能,使用你自己的乌尔都语数据对选择的声码器进行微调,以获得更好的性能。

3. 模型参数和架构:

  • 超参数调整: 尝试不同的学习率、批量大小和训练轮数。使用诸如网格搜索或贝叶斯优化等技术来自动化此过程。
  • 模型架构: 考虑实验不同的 TTS 模型架构,如 Tacotron 2、FastSpeech 2 或 TransformerTTS。这些模型可能更适合乌尔都语。

4. 计算资源:

  • GPU 训练: 训练 TTS 模型需要大量计算资源。使用 GPU 来加速训练过程。
  • 更大的模型: 更大的模型通常可以产生更好的结果。考虑使用具有更多参数的模型,但请记住,这将需要更多计算资源。

改进代码的具体建议:

  • 探索 Hugging Face 库: Hugging Face 库提供了一个广泛的预训练 TTS 模型和声码器集合,以及用于微调和生成的便捷函数。利用这个库可以简化你的代码并潜在地改善结果。
  • 实验不同的说话人嵌入: 尝试使用不同的说话人嵌入,或对你的数据进行微调以创建自定义嵌入。这可以帮助改善生成的语音的自然度和表现力。

其他提示:

  • 客观评估: 使用客观指标(如平均意见得分 (MOS) 或梅尔倒谱失真 (MCD))评估生成的语音质量。这将帮助你量化改进并做出更明智的决策。
  • 迭代方法: 改进 TTS 模型是一个迭代过程。从小的改进开始,并在你获得更多经验时逐渐增加模型的复杂性。

请记住,创建一个高质量的 TTS 系统需要时间和精力,尤其是在像乌尔都语这样的低资源语言中。通过遵循这些步骤并不断尝试,你可以显着改善你的乌尔都语 TTS 输出的结果。

标签:python,text-to-speech,torch
From: 78802573

相关文章

  • 有没有办法在Python中使用OpenCV在边界框后面画一条线?
    我正在为我的本科论文编写一个应用程序,该应用程序从根本上允许使用OpenCV库跟踪视频源中的多个对象。为了进一步发展这个想法,我希望能够在屏幕上画一条线,显示边界框在我正在跟踪的对象周围的历史记录。我注意到没有排序用于执行此操作的内置函数,因此任何有关制作此类内容的......
  • 如何向 python pandas 数据透视表添加过滤器? (pd.read_excel)
    我正在尝试使用pandas库在python中重新创建我在Excel中制作的数据透视表。我试图用时间段作为过滤器来总结超过500k行的OD总行程数据。在Excel上,我只会执行行(O)、列(D)、值(行程)、过滤器(时间)。到目前为止,在python上我只有索引、列、值、aggfunc,但我不知道如何过滤。有......
  • 标量添加中的 Python 溢出警告
    我想执行一个简单的操作:b+g+rb,g,r变量是整数并且值低于256。我收到溢出警告和错误的结果。问题是操作很简单(结果不高于765),我不应该收到溢出警告这是我的代码:importcv2ascvimportnumpyasnpimgname='r_hh_classic.png'img=cv.imread(imgname)h,w,_=......
  • 在 Python 中读取部分 MP3 文件时处理“对于可用位计数来说太大”错误
    我正在尝试读取MP3文件的特定部分,但遇到错误:[src/libmpg123/layer3.c:INT123_do_layer3():1771]error:part2_3_length(1376)toolargeforavailablebitcount(760)可以访问音频文件此处我的环境是使用此Docker映像设置的:pytorc......
  • Python SQLAlchemy 2.0 使用 dataclass_transform 非必需字段类型
    我刚刚在一个新项目上安装了SQLAlchemy2.0,我正在尝试使我的模型尽可能类型安全。通过使用@typing_extensions.dataclass_transform,我已经能够实现我想要实现的大部分目标类型检查,但是当前所有字段都被标记为不需要。例如:@typing_extensions.dataclass_tran......
  • 当读取字节时,Python 将 \n 解释为 0xd0
    换行符被解释为Ð(0xd0)而不是(0x0a),我真的不知道如何解决这个问题。我也不知道从哪里开始。当尝试使用此代码时,它将0x0a读为0xd0。withopen(path,"rb")asroot:b_arr=root.read()+b""print("Processing...")buffer=""b_arr......
  • 在Python 3中获取范围的特定形式
    当获取range(1,100)时,我得到:[1,2,3,4,5...99]我需要像这个范围的zip之类的东西:[50,49,51,48,52,47,53...99]如何获取它?背景:这都是关于比特币谜题66的。首先我做了对过去已知的私钥进行线性回归预测,直到第65题为止。我......
  • Python:如何使用pyaudio或sounddevice等库进行自动录音?
    我想做一个项目,需要满足以下录音要求:程序启动后,会在后台不断检测麦克风的声音,当声音分贝大于一定值时打开录音流级别,当分贝低于一定级别时关闭录音流并保存为wav文件。我知道原理,但我无法使用这些库来实现。我想实现以上结果使用Python实现自动录音以下代......
  • 当我们创建一个在 https 服务器上获取和发送数据的 python 应用程序时,我们应该如何处
    python脚本使用Urllib3,我的服务器是在Node.js上编写的脚本。我担心(并且不清楚)证书:我是否需要将我的python应用程序上的证书另存为变量?例如我这样做了,http=urllib3.PoolManager(cert_reqs="CERT_REQUIRED",ca_certs='client-cert.pem')并且我不知道......
  • 使用 Python 进行 Web 抓取以获取数据 NoneType ERROR
    我正在努力为我的学校项目获取美元和价格。所以我决定为此使用网络抓取,但我有一个问题。当我尝试在服务器上使用我的代码时,它给我NoneType错误。它可以在googlecolab上使用,但我无法在我的电脑或服务器上使用。我该如何解决这个问题?网页抓取代码;defdolar():he......