Canary-TTS-150M

llm-jp/llm-jp-3-150m-instruct3 をベースに学習したTTSモデルです。
Parler‑TTSと同じプロンプト方式を採用し、制御プロンプトと読み上げプロンプトを変更することで声質の細かな制御が可能です。
本モデルは Canary-TTS 0.5B を学習させる上で作成された実験モデルです。そのため Canary-TTS 0.5B の使用をおすすめします。


Canary-TTS Index


クイックインデックス


モデル

  • モデル名: 2121‑8/canary‑tts‑150m
  • ベースモデル: llm-jp/llm-jp-3-150m-instruct3
  • audio decoder: HKUSTAudio/xcodec2

特徴

  • 制御プロンプトによるピッチ、ノイズの制御
  • 読み上げプロンプトによるテキスト読み上げ
  • 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)

サンプル音声

謝辞

  • Parler‑TTS コミュニティ
  • XCodec2 開発者

ライセンス

CC BY‑NC 4.0


クレジット

Audio decoder

モデル


著作権および使用に関する免責事項

以下の条件を遵守してください。

  1. 適切性についての免責 本モデルの利用により得られる結果の正確性、合法性、または適切性について、作成者は一切保証しません。

  2. ユーザーの責任 本モデルを使用する際は、適用されるすべての法律や規制を遵守してください。また、生成されたコンテンツに起因する責任はすべてユーザーに帰属します。

  3. 作成者の免責 本リポジトリおよびモデルの作成者は、著作権侵害やその他の法的問題に関する責任を一切負いません。

  4. 削除要求への対応 著作権問題が発生した場合、問題のあるリソースやデータを速やかに削除します。


Downloads last month
11
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for 2121-8/canary-tts-150m

Finetuned
(1)
this model

Collection including 2121-8/canary-tts-150m