库名称:transformers
许可证:apache-2.0
支持语言:
- 英语
基础模型:
- HuggingFaceTB/SmolLM2-360M
任务类型:文本转语音
YarnGPT2

目录
- 模型概述
- 模型描述
- 偏见、风险与限制
- 语音样本
- 训练过程
- 未来改进
- 引用方式
- 致谢与参考
模型概述
YarnGPT2是一款专为合成尼日利亚口音语言(约鲁巴语、伊博语、豪萨语及英语)设计的文本转语音(TTS)模型。该模型采用纯语言建模技术,无需外部适配器或复杂架构,可为多样化应用提供高质量、自然且符合文化背景的语音合成服务。
<视频控件宽度="600">
<源文件 src="https://huggingface.co/saheedniyi/YarnGPT/resolve/main/audio/YearnGPT.mp4" 类型="video/mp4">
您的浏览器不支持视频标签。
</视频>
使用方法(Colab)
本模型可独立生成音频,但建议使用特定语音提示模型:
可用语音(按性能和稳定性排序)
- 英语:idera、chinenye、jude、emma、umar、joke、zainab、osagie、remi、tayo
- 约鲁巴语:yoruba_male2、yoruba_female2、yoruba_feamle1
- 伊博语:igbo_female2、igbo_male2、igbo_female1
- 豪萨语:hausa_feamle1、hausa_female2、hausa_male2、hausa_male1
调用YarnGPT2
!git clone https://github.com/saheedniyi02/yarngpt.git
pip install outetts uroman
import os
import re
import json
import torch
import inflect
import random
import uroman as ur
import numpy as np
import torchaudio
import IPython
from transformers import AutoModelForCausalLM, AutoTokenizer
from outetts.wav_tokenizer.decoder import WavTokenizer
!wget https://huggingface.co/novateur/WavTokenizer-medium-speech-75token/resolve/main/wavtokenizer_mediumdata_frame75_3s_nq1_code4096_dim512_kmeans200_attn.yaml
!gdown 1-ASeEkrn4HY49yZWHTASgfGFNXdVnLTt
from yarngpt.audiotokenizer import AudioTokenizerV2
tokenizer_path="saheedniyi/YarnGPT2"
wav_tokenizer_config_path="/content/wavtokenizer_mediumdata_frame75_3s_nq1_code4096_dim512_kmeans200_attn.yaml"
wav_tokenizer_model_path = "/content/wavtokenizer_large_speech_320_24k.ckpt"
audio_tokenizer=AudioTokenizerV2(
tokenizer_path,wav_tokenizer_model_path,wav_tokenizer_config_path
)
model = AutoModelForCausalLM.from_pretrained(tokenizer_path,torch_dtype="auto").to(audio_tokenizer.device)
text="商人兼政治家Moshood Abiola赢得了选举,但Babangida以国家安全为由宣布结果无效。"
prompt=audio_tokenizer.create_prompt(text,lang="english",speaker_name="idera")
input_ids=audio_tokenizer.tokenize_prompt(prompt)
output = model.generate(
input_ids=input_ids,
temperature=0.1,
repetition_penalty=1.1,
max_length=4000,
)
codes=audio_tokenizer.get_codes(output)
audio=audio_tokenizer.get_audio(codes)
IPython.display.Audio(audio,rate=24000)
torchaudio.save(f"Sample.wav", audio, sample_rate=24000)
模型描述
用途
为实验目的生成尼日利亚口音英语语音。
非适用场景
本模型不适合生成英语之外或其他口音的语音。
偏见、风险与限制
模型可能无法完全覆盖尼日利亚口音的多样性,并可能反映训练数据的偏见。由于大部分训练文本为自动生成,可能影响生成质量。
使用建议
用户(包括直接使用者和下游开发者)应了解模型的潜在风险、偏见和限制。欢迎提供反馈和多样化的训练数据贡献。
语音样本
试听YarnGPT生成的样本:
输入文本 |
生成音频 |
备注 |
呃,那么,你最新项目的灵感是什么?是某个瞬间让你觉得"就是它了!",还是随着时间的推移自然形成的呢? |
|
(温度=0.1, 重复惩罚=1.1), 语言: 英语, 语音: idera |
训练过程
数据
使用公开的尼日利亚电影、播客(通过字幕-音频配对)及HuggingFace上尼日利亚相关开源音频数据进行训练。
预处理
音频文件经预处理并重采样至24kHz,使用wavtokenizer进行标记化。
训练超参数
- 训练轮次: 5
- 批次大小: 4
- 调度器: 前4轮线性预热,末轮线性衰减至零
- 优化器: AdamW (betas=(0.9, 0.95),权重衰减=0.01)
- 学习率: 1*10^-3
硬件
- GPU: 1块A100(Google Colab: 50小时)
软件
未来改进
- 扩大模型规模并采用人工标注/审核的训练数据
- 开发API端点封装
- 实现语音克隆功能
- 探索语音到语音助手模型的开发
引用
BibTeX格式:
@misc{yarngpt2025,
author = {Saheed Azeez},
title = {YarnGPT: 尼日利亚口音英语文本转语音模型},
year = {2025},
publisher = {Hugging Face},
url = {https://huggingface.co/SaheedAzeez/yarngpt}
}
APA格式:
Saheed Azeez. (2025). YarnGPT: 尼日利亚口音英语文本转语音模型. Hugging Face. 访问地址: https://huggingface.co/saheedniyi/YarnGPT
致谢与参考