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