🐕
Elevenlabsのmultilingual TTSをgoogle colabで試してみた。
Elevenlabs TTSとは
Elevenlabs TTSはElevenlabsから提供されたリアルな声を高品質に生成するためのモデルであり、複数の言語をサポートする単一のTTSモデルとなっています。
clone voicesとかもありますが課金しなきゃできませんでした。
リンク
準備
Google Colabを開き、メニューから「ランタイム→ランタイムのタイプを変更」でランタイムを「GPU」に変更します。
環境構築
インストール手順は以下の通りです。
!pip install elevenlabs -U
推論
(1) 英語での推論
話者の名前があるみたいです。
from elevenlabs import generate, play
audio = generate(
text="Hi! I'm the world's most advanced text-to-speech system, made by elevenlabs.",
voice="Bella"
)
play(audio, notebook=True)
(2)スペイン語での推論
# multilingal
audio = generate(
text="¡Hola! Mi nombre es Arnold, encantado de conocerte!",
voice="Arnold", # "Domi"
model='eleven_multilingual_v1'
)
play(audio, notebook=True)
(3)話者の名前とか諸々
from elevenlabs import voices
voices = voices()
print(voices)
Advanced Application
日本語から英語の音声を作成してみましょう。
今回り要するのはNLLB200というfacebookから出されている翻訳モデルです。
言語モデルのタイプは以下を参考に変えてみてください。
(1)インストール
!pip install transformers
(2)翻訳モデルのロード
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_name = "facebook/nllb-200-distilled-600M" # facebook/nllb-200-3.3B
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
(3)日本語から英語の音声までのパイプライン
rticle = "こんにちは、私は他に並ぶもののない最新鋭の言語モデルです。"
inputs = tokenizer(article, return_tensors="pt")
translated_tokens = model.generate(
**inputs, forced_bos_token_id=tokenizer.lang_code_to_id["eng_Latn"], max_length=60
)
ret = tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
print(ret)
from elevenlabs import generate, play
audio = generate(
text=ret,
voice="Bella"
)
play(audio, notebook=True)
(4)日本語からスペイン語の音声のパイプライン
lang_type = "epo_Latn"
article = "こんにちは、私は他に並ぶもののない最新鋭の言語モデルです。"
inputs = tokenizer(article, return_tensors="pt")
translated_tokens = model.generate(
**inputs, forced_bos_token_id=tokenizer.lang_code_to_id[lang_type], max_length=60
)
ret = tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
print(ret)
from elevenlabs import generate, play
audio = generate(
text=ret,
voice="Bella",
model='eleven_multilingual_v1'
)
play(audio, notebook=True)
(5)日本語からドイツ語
lang_type = "deu_Latn"
article = "こんにちは、私は他に並ぶもののない最新鋭の言語モデルです。"
inputs = tokenizer(article, return_tensors="pt")
translated_tokens = model.generate(
**inputs, forced_bos_token_id=tokenizer.lang_code_to_id[lang_type], max_length=60
)
ret = tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
print(ret)
from elevenlabs import generate, play
audio = generate(
text=ret,
voice="Bella",
model='eleven_multilingual_v1'
)
play(audio, notebook=True)
結果画面はこんな感じ
アラビア語とかはだめでした。。
最後に
今回はelevenlabsから新しく出たTTSについて試してみました。音声品質は抜群だったと感じます。
翻訳モデルとかと組み合わせると簡単なニュースのスクリプトとかは日本語で書いて世界中に発信できてしまいますね。日本語とかには対応していないみたいですが、英語みたいなイントネーションで日本語を喋るところまでは確認しました!(笑笑)
お金ある人clone voicesを試してみてください。多分かなり高精度なんじゃないかなーー
今後ともLLM, Diffusion model, Image Analysis, 3Dに関連する試した記事を投稿していく予定なのでよろしくお願いします。
Discussion