🚀 Canary-TTS-0.5B
Canary-TTS-0.5B 是一个基于文本转语音(TTS)技术的模型,它以 sbintuitions/sarashina2.2-0.5b-instruct-v0.1 为基础模型进行训练。该模型采用了与 Parler-TTS 相同的提示方式,通过更改控制提示和朗读提示,能够对声音质量进行精细控制。
🚀 快速开始
模型索引
快速索引
✨ 主要特性
- 通过控制提示控制音高、性别和噪音。
- 通过朗读提示进行文本朗读。
- 基于 Parler-TTS 和 XCodec2 的代码构建。
- 基于 llama 构建,可转移 LLM 技术。
📦 安装指南
pip install torch torchvision torchaudio
pip install git+https://github.com/getuka/canary-tts.git
💻 使用示例
基础用法
import torch, torchaudio
from transformers import AutoModelForCausalLM, AutoTokenizer
from canary_tts.xcodec2.modeling_xcodec2 import XCodec2Model
from rubyinserter import add_ruby
tokenizer = AutoTokenizer.from_pretrained("2121-8/canary-tts-0.5b")
model = AutoModelForCausalLM.from_pretrained("2121-8/canary-tts-0.5b", device_map="auto", torch_dtype=torch.bfloat16)
codec = XCodec2Model.from_pretrained("HKUSTAudio/xcodec2")
description = "A man voice, with a very hight pitch, speaks in a monotone manner. The recording quality is very noises and close-sounding, indicating a good or excellent audio capture."
prompt = 'こんにちは。お元気ですか?'
prompt = add_ruby(prompt)
chat = [
{"role": "system", "content": description},
{"role": "user", "content": prompt}
]
tokenized_input = tokenizer.apply_chat_template(chat, add_generation_prompt=True, tokenize=True, return_tensors="pt").to(model.device)
with torch.no_grad():
output = model.generate(
tokenized_input,
max_new_tokens=256,
top_p=0.95,
temperature=0.7,
repetition_penalty=1.05,
)[0]
audio_tokens = output[len(tokenized_input[0]):]
output_audios = codec.decode_code(audio_tokens.unsqueeze(0).unsqueeze(0).cpu())
torchaudio.save("sample.wav", src=output_audios[0].cpu(), sample_rate=16000)
📚 详细文档
模型
属性 |
详情 |
模型名称 |
2121‑8/canary‑tts‑0.5b |
基础模型 |
sbintuitions/sarashina2.2-0.5b-instruct-v0.1 |
音频解码器 |
HKUSTAudio/xcodec2 |
示例语音
致谢
- Parler‑TTS 社区
- XCodec2 开发者
许可证
CC BY‑NC 4.0
版权信息
音频解码器
模型
版权及使用免责声明
请遵守以下条件:
- 适用性免责:创建者不对使用本模型所获得结果的准确性、合法性或适用性做任何保证。
- 用户责任:使用本模型时,请遵守所有适用的法律法规。因生成内容而产生的所有责任均由用户承担。
- 创建者免责:本仓库和模型的创建者不对版权侵权或其他法律问题承担任何责任。
- 处理删除请求:如发生版权问题,将立即删除有问题的资源或数据。