Speecht5 Tts Wolof
模型简介
该模型是基于Microsoft SpeechT5针对沃洛夫语文本转语音任务微调的版本,提供沃洛夫语语音合成能力,能捕捉该语言的细微差别。
模型特点
沃洛夫语专用分词器
使用专为沃洛夫语设计的自定义分词器,优化了语言特性处理
语音合成优化
通过微调捕捉沃洛夫语独特的语音和句法特征
高效生成
支持束搜索和温度控制等参数优化生成质量
模型能力
沃洛夫语文本转语音
多风格语音合成
说话人嵌入支持
使用案例
语音界面
虚拟助手
为沃洛夫语用户提供语音交互能力
无障碍服务
为视障用户转换文本内容为语音
教育应用
语言学习工具
帮助学习者获取沃洛夫语发音参考
🚀 语音T5文本转语音 - 沃洛夫语模型
本模型是基于SpeechT5在沃洛夫语数据集上进行微调的文本转语音(TTS)模型。它使用了专门为沃洛夫语设计的自定义分词器,并调整了基线模型的配置,以适应自定义分词器引入的新词汇。此版本的SpeechT5提供了专门针对沃洛夫语进行优化的语音合成能力。
🚀 快速开始
安装必要依赖
要安装必要的依赖项,请运行以下命令:
!pip install transformers datasets
模型加载和语音生成代码
import torch
from transformers import SpeechT5ForTextToSpeech, SpeechT5Processor
from transformers import SpeechT5HifiGan
def load_speech_model(checkpoint="bilalfaye/speecht5_tts-wolof", vocoder_checkpoint="microsoft/speecht5_hifigan"):
"""
加载用于文本转语音的SpeechT5模型、处理器和语音编码器。
参数:
checkpoint (str): SpeechT5 TTS的模型检查点。
vocoder_checkpoint (str): HiFi-GAN语音编码器的检查点。
返回:
processor: 模型的处理器。
model: 加载的SpeechT5模型。
vocoder: 加载的HiFi-GAN语音编码器。
device: 模型加载的设备(CPU或GPU)。
"""
# 检查GPU可用性并相应设置设备
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# 加载SpeechT5处理器和模型
processor = SpeechT5Processor.from_pretrained(checkpoint)
model = SpeechT5ForTextToSpeech.from_pretrained(checkpoint).to(device) # 将模型移动到正确的设备
# 加载HiFi-GAN语音编码器
vocoder = SpeechT5HifiGan.from_pretrained(vocoder_checkpoint).to(device) # 将语音编码器移动到正确的设备
return processor, model, vocoder, device
# 示例用法
processor, model, vocoder, device = load_speech_model()
# 验证使用的设备
print(f"模型和语音编码器加载到的设备: {device}")
from datasets import load_dataset
# 加载说话人嵌入(此数据集包含特定说话人的嵌入)
embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
speaker_embedding = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)
import torch
from transformers import SpeechT5ForTextToSpeech, SpeechT5Processor, SpeechT5HifiGan
from IPython.display import Audio, display
def generate_speech_from_text(text,
speaker_embedding=speaker_embedding,
processor=processor,
model=model,
vocoder=vocoder):
"""
使用SpeechT5和HiFi-GAN语音编码器从给定文本生成语音。
参数:
text (str): 要转换为语音的输入文本。
checkpoint (str): SpeechT5 TTS的模型检查点。
vocoder_checkpoint (str): HiFi-GAN语音编码器的检查点。
speaker_embedding (torch.Tensor): 说话人嵌入张量。
processor (SpeechT5Processor): 模型的处理器。
model (SpeechT5ForTextToSpeech): 加载的SpeechT5模型。
vocoder (SpeechT5HifiGan): 加载的HiFi-GAN语音编码器。
返回:
无
"""
# 文本转语音生成的参数
max_text_positions = model.config.max_text_positions # 令牌限制
max_length = model.config.max_length * 1.2 # 稍微扩展的最大长度
min_length = max_length // 3 # 根据最大长度调整
num_beams = 7 # 使用束搜索以提高质量
temperature = 0.6 # 降低温度以提高稳定性
# 对输入文本进行分词并将输入张量移动到正确的设备
inputs = processor(text=text, return_tensors="pt", padding=True, truncation=True, max_length=max_text_positions)
inputs = {key: value.to(model.device) for key, value in inputs.items()} # 将输入移动到设备
# 生成语音
speech = model.generate(
inputs["input_ids"],
speaker_embeddings=speaker_embedding.to(model.device), # 确保说话人嵌入也在正确的设备上
vocoder=vocoder,
max_length=int(max_length),
min_length=int(min_length),
num_beams=num_beams,
temperature=temperature,
no_repeat_ngram_size=3,
repetition_penalty=1.5,
eos_token_id=None,
use_cache=True
)
# 将语音从计算图中分离并移动到CPU
speech = speech.detach().cpu().numpy()
# 使用IPython Audio播放生成的语音
display(Audio(speech, rate=16000))
# 示例用法
text = "ñu ne ñoom ñooy nattukaay satélite yi"
generate_speech_from_text(text)
✨ 主要特性
- 该模型基于
SpeechT5
架构,将语音识别和合成集成到一个统一的框架中。 - 使用专门为沃洛夫语训练的自定义分词器和调整后的配置,以适应沃洛夫语独特的词汇。
- 能够将沃洛夫语文本转换为自然流畅的语音,可集成到需要语音接口、虚拟助手或语音合成的应用中,为讲沃洛夫语的社区服务。
📦 安装指南
要安装必要的依赖项,请运行以下命令:
!pip install transformers datasets
💻 使用示例
基础用法
import torch
from transformers import SpeechT5ForTextToSpeech, SpeechT5Processor
from transformers import SpeechT5HifiGan
def load_speech_model(checkpoint="bilalfaye/speecht5_tts-wolof", vocoder_checkpoint="microsoft/speecht5_hifigan"):
"""
加载用于文本转语音的SpeechT5模型、处理器和语音编码器。
参数:
checkpoint (str): SpeechT5 TTS的模型检查点。
vocoder_checkpoint (str): HiFi-GAN语音编码器的检查点。
返回:
processor: 模型的处理器。
model: 加载的SpeechT5模型。
vocoder: 加载的HiFi-GAN语音编码器。
device: 模型加载的设备(CPU或GPU)。
"""
# 检查GPU可用性并相应设置设备
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# 加载SpeechT5处理器和模型
processor = SpeechT5Processor.from_pretrained(checkpoint)
model = SpeechT5ForTextToSpeech.from_pretrained(checkpoint).to(device) # 将模型移动到正确的设备
# 加载HiFi-GAN语音编码器
vocoder = SpeechT5HifiGan.from_pretrained(vocoder_checkpoint).to(device) # 将语音编码器移动到正确的设备
return processor, model, vocoder, device
# 示例用法
processor, model, vocoder, device = load_speech_model()
# 验证使用的设备
print(f"模型和语音编码器加载到的设备: {device}")
from datasets import load_dataset
# 加载说话人嵌入(此数据集包含特定说话人的嵌入)
embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
speaker_embedding = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)
import torch
from transformers import SpeechT5ForTextToSpeech, SpeechT5Processor, SpeechT5HifiGan
from IPython.display import Audio, display
def generate_speech_from_text(text,
speaker_embedding=speaker_embedding,
processor=processor,
model=model,
vocoder=vocoder):
"""
使用SpeechT5和HiFi-GAN语音编码器从给定文本生成语音。
参数:
text (str): 要转换为语音的输入文本。
checkpoint (str): SpeechT5 TTS的模型检查点。
vocoder_checkpoint (str): HiFi-GAN语音编码器的检查点。
speaker_embedding (torch.Tensor): 说话人嵌入张量。
processor (SpeechT5Processor): 模型的处理器。
model (SpeechT5ForTextToSpeech): 加载的SpeechT5模型。
vocoder (SpeechT5HifiGan): 加载的HiFi-GAN语音编码器。
返回:
无
"""
# 文本转语音生成的参数
max_text_positions = model.config.max_text_positions # 令牌限制
max_length = model.config.max_length * 1.2 # 稍微扩展的最大长度
min_length = max_length // 3 # 根据最大长度调整
num_beams = 7 # 使用束搜索以提高质量
temperature = 0.6 # 降低温度以提高稳定性
# 对输入文本进行分词并将输入张量移动到正确的设备
inputs = processor(text=text, return_tensors="pt", padding=True, truncation=True, max_length=max_text_positions)
inputs = {key: value.to(model.device) for key, value in inputs.items()} # 将输入移动到设备
# 生成语音
speech = model.generate(
inputs["input_ids"],
speaker_embeddings=speaker_embedding.to(model.device), # 确保说话人嵌入也在正确的设备上
vocoder=vocoder,
max_length=int(max_length),
min_length=int(min_length),
num_beams=num_beams,
temperature=temperature,
no_repeat_ngram_size=3,
repetition_penalty=1.5,
eos_token_id=None,
use_cache=True
)
# 将语音从计算图中分离并移动到CPU
speech = speech.detach().cpu().numpy()
# 使用IPython Audio播放生成的语音
display(Audio(speech, rate=16000))
# 示例用法
text = "ñu ne ñoom ñooy nattukaay satélite yi"
generate_speech_from_text(text)
📚 详细文档
预期用途
- 文本转语音生成:该模型可用于将沃洛夫语文本转换为自然流畅的语音。它可以集成到需要语音接口、虚拟助手或为讲沃洛夫语的社区提供语音合成的应用程序中。
局限性
- 适用范围有限:该模型是专门为沃洛夫语进行微调的,对于其他语言或口音可能表现不佳。
- 数据可用性:虽然模型在沃洛夫语数据集上进行了微调,但生成语音的质量可能会因输入文本的复杂性和训练数据集的不同而有所差异。
- 词汇和分词器限制:分词器是专门为沃洛夫语训练的,因此可能无法有效处理未登录词或未知字符。
🔧 技术细节
训练和评估数据
该模型在一个由沃洛夫语文本组成的自定义数据集上进行了微调。这个数据集用于调整模型,使其生成的语音能够准确反映沃洛夫语的语音和句法特性。
训练过程
训练超参数
以下是训练过程中使用的超参数:
- 学习率:1e-05
- 训练批次大小:8
- 评估批次大小:2
- 随机种子:42
- 梯度累积步数:8
- 总训练批次大小:64
- 优化器:Adam(β1=0.9,β2=0.999,ε=1e-08)
- 学习率调度器类型:线性
- 热身步数:500
- 训练步数:255000
- 混合精度训练:原生自动混合精度(Native AMP)
训练结果
轮次 | 训练损失 | 验证损失 |
---|---|---|
26 | 0.3894 | 0.3687 |
27 | 0.3858 | 0.3712 |
28 | 0.3874 | 0.3669 |
29 | 0.3887 | 0.3685 |
30 | 0.3854 | 0.3670 |
32 | 0.3856 | 0.3697 |
评估表仅包含最后5个轮次的结果。
框架版本
- Transformers:4.41.2
- PyTorch:2.4.0+cu121
- Datasets:3.2.0
- Tokenizers:0.19.1
📄 许可证
本模型使用MIT许可证。
作者
- Bilal FAYE
信息表格
属性 | 详情 |
---|---|
模型类型 | 基于SpeechT5架构的文本转语音模型 |
训练数据 | galsenai/wolof_tts数据集 |
Kokoro 82M
Apache-2.0
Kokoro是一款拥有8200万参数的开源文本转语音(TTS)模型,以其轻量级架构和高音质著称,同时具备快速和成本效益高的特点。
语音合成 英语
K
hexgrad
2.0M
4,155
XTTS V2
其他
ⓍTTS是一款革命性的语音生成模型,仅需6秒音频片段即可实现跨语言音色克隆,支持17种语言。
语音合成
X
coqui
1.7M
2,630
F5 TTS
F5-TTS 是一个基于流匹配的语音合成模型,专注于流畅且忠实的语音合成,特别适用于童话讲述等场景。
语音合成
F
SWivid
851.49k
1,000
Bigvgan V2 22khz 80band 256x
MIT
BigVGAN是基于大规模训练的通用神经声码器,能够从梅尔频谱生成高质量音频波形。
语音合成
B
nvidia
503.23k
16
Speecht5 Tts
MIT
基于LibriTTS数据集微调的SpeechT5语音合成(文本转语音)模型,支持高质量的文本转语音转换。
语音合成
Transformers

S
microsoft
113.83k
760
Dia 1.6B
Apache-2.0
Dia是由Nari实验室开发的16亿参数文本转语音模型,能够直接从文本生成高度逼真的对话,支持情感和语调控制,并能生成非语言交流内容。
语音合成
Safetensors 英语
D
nari-labs
80.28k
1,380
Csm 1b
Apache-2.0
CSM是Sesame开发的10亿参数规模语音生成模型,可根据文本和音频输入生成RVQ音频编码
语音合成
Safetensors 英语
C
sesame
65.03k
1,950
Kokoro 82M V1.1 Zh
Apache-2.0
Kokoro 是一个开放权重的小型但功能强大的文本转语音(TTS)模型系列,新增了来自专业数据集的100名中文说话人数据。
语音合成
K
hexgrad
51.56k
112
Indic Parler Tts
Apache-2.0
Indic Parler-TTS 是 Parler-TTS Mini 的多语言印度语言扩展版本,支持21种语言,包括多种印度语言和英语。
语音合成
Transformers 支持多种语言

I
ai4bharat
43.59k
124
Bark
MIT
Bark是由Suno创建的基于Transformer的文本转音频模型,能生成高度逼真的多语言语音、音乐、背景噪音和简单音效。
语音合成
Transformers 支持多种语言

B
suno
35.72k
1,326
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98