🚀 Canary-TTS-150M
Canary-TTS-150M 是一個基於 llm-jp/llm-jp-3-150m-instruct3 訓練的文本轉語音(TTS)模型。它採用了與 Parler‑TTS 相同的提示方式,通過更改控制提示和朗讀提示,可以對音質進行精細控制。該模型是在訓練 Canary-TTS 0.5B 時創建的實驗模型,因此推薦使用 Canary-TTS 0.5B。
🚀 快速開始
Canary-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-150m")
model = AutoModelForCausalLM.from_pretrained("2121-8/canary-tts-150m", 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‑150m |
基礎模型 |
llm-jp/llm-jp-3-150m-instruct3 |
音頻解碼器 |
HKUSTAudio/xcodec2 |
示例語音
致謝
- Parler‑TTS 社區
- XCodec2 開發者
許可證
CC BY‑NC 4.0
版權信息
音頻解碼器
模型
版權及使用免責聲明
請遵守以下條件:
- 適用性免責:創建者不保證使用本模型所獲得結果的準確性、合法性或適用性。
- 用戶責任:使用本模型時,請遵守所有適用的法律法規。生成內容所產生的所有責任均由用戶承擔。
- 創建者免責:本倉庫和模型的創建者不承擔任何版權侵權或其他法律問題的責任。
- 處理刪除請求:如發生版權問題,將立即刪除有問題的資源或數據。