Canary-TTS
Collection
6 items
•
Updated
•
3
Canary-TTS 150Mを元にJUSTで追加学習をしたTTSモデルです。
詳細: Canary-TTS Nano 150M β
coming soon
git clone https://github.com/getuka/canary-tts-training.git
pip install torch torchvision torchaudio
pip install git+https://github.com/getuka/canary-tts.git
import os
import torch, torchaudio
from transformers import AutoModelForCausalLM, AutoTokenizer
from canary_tts.wavtokenizer import WavDecoder
from rubyinserter import add_ruby
tokenizer = AutoTokenizer.from_pretrained("2121-8/canary-tts-nano-150m-beta_just-sample")
model = AutoModelForCausalLM.from_pretrained("2121-8/canary-tts-nano-150m-beta_just-sample", device_map="auto", torch_dtype=torch.bfloat16)
cache_dir = os.path.join(os.path.join(os.path.expanduser("~"), ".cache"),"outeai", "tts", "wavtokenizer_75_token_interface")
decoder = WavDecoder.from_pretrained(os.path.join(cache_dir, 'decoder')).to(model.device)
prompt = 'こんにちは。このような声で発音ができます。'
prompt = add_ruby(prompt)
chat = [
{"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=512,
do_sample=True,
#top_k=1,
#top_p=0.95,
temperature=0.9,
#repetition_penalty=1.05,
)[0]
audio_tokens = output[len(tokenized_input[0]):]
features = decoder.codes_to_features(audio_tokens.unsqueeze(0).unsqueeze(0))
output_audios = decoder(features, bandwidth_id=torch.tensor([0], device=features.device))
torchaudio.save("sample.wav", src=output_audios.cpu(), sample_rate=24000)
生成音声 元の音声
CC-BY-SA 4.0
以下の条件を遵守してください。
適切性についての免責 本モデルの利用により得られる結果の正確性、合法性、または適切性について、作成者は一切保証しません。
ユーザーの責任 本モデルを使用する際は、適用されるすべての法律や規制を遵守してください。また、生成されたコンテンツに起因する責任はすべてユーザーに帰属します。
作成者の免責 本リポジトリおよびモデルの作成者は、著作権侵害やその他の法的問題に関する責任を一切負いません。
削除要求への対応 著作権問題が発生した場合、問題のあるリソースやデータを速やかに削除します。
Base model
llm-jp/llm-jp-3-150m-instruct3