AIパーソナル・ラーニング
と実践的なガイダンス

Llasa 1~8B: 高品質音声生成とクローニングのためのオープンソース音声合成モデル

はじめに

Llasa-3Bは、香港科学技術大学のオーディオ研究室(HKUST Audio)が開発したオープンソースの音声合成(TTS)モデルである。このモデルはLlama 3.2Bアーキテクチャに基づいており、多言語に対応するだけでなく、感情表現やパーソナライズされた音声クローニングを可能にする高品質な音声生成を提供するために慎重に調整されています。Llasa-3Bは、自然な音声合成におけるその表現力と柔軟性により、多くの研究者や開発者の注目を集めています。

Llasa 1~8B: 高品質音声生成とクローニングのためのオープンソース音声合成モデル-1

経験:https://huggingface.co/spaces/srinivasbilla/llasa-3b-tts


 

機能一覧

  • 音声合成テキストを自然で滑らかな音に変換します。
  • ボイスクローニングたった15秒のオーディオ映像で、音色や感情を含む特定の人間の声をクローンすることができる。
  • 多言語サポート対応言語は中国語と英語。
  • 感情表現生成された音声に感情を注入できるため、音声の信憑性が高まります。
  • マルチモデル対応1Bと3Bのパラメトリックスケールモデルを用意。
  • オープン加重また、TransformersとvLLMの両方のフレームワークをサポートしています。

 

ヘルプの使用

インストールと環境の準備

Llasa-3Bモデルを使用するには、まず以下の環境を用意する必要がある:

Python環境Python 3.9以上を推奨。
関連図書館のインストールが必要です。トーチ変圧器xcodec2などのライブラリーがある。

conda create -n xcodec2 python=3.9
conda は xcodec2 をアクティブにする。
pip install transformers torch xcodec2==0.1.3

モデルのダウンロードと読み込み

ハギング・フェイスへLlasa-3BのページHugging Faceのモデルダウンロード機能を直接ご利用いただけます:

from transformers import AutoTokenizer, AutoModelForCausalLM
インポートトーチ
import soundfile as sf
llasa_3b = 'HKUST-Audio/Llasa-3B'
tokenizer = AutoTokenizer.from_pretrained(llasa_3b)
model = AutoModelForCausalLM.from_pretrained(llasa_3b)
model.eval()
model.to('cuda') # GPUがある場合

音声合成プロセス

  1. 準備したテキスト::
    • 音声に変換したいテキストを入力します。
  2. テキスト前処理::
    • 例えば、音声生成モデルをガイドするために、特定の書式のテキストを使用する:
      input_text = "これはテストテキストです。音声に変換してください。"
      formatted_text = f"{input_text}"
      
  3. スピーチの生成::
    • テキストをモデルが理解できるトークンに変換する:
      chat = [
      {"role": "user", "content": "テキストを音声に変換してください:" + formatted_text}、
      {"role": "assistant", "content": ""}"です。
      ]
      input_ids = tokenizer.apply_chat_template(chat, tokenize=True, return_tensors='pt', continue_final_message=True)
      input_ids = input_ids.to('cuda')
      
    • 音声トークンを生成する:
      speech_end_id = tokenizer.convert_tokens_to_ids('')
      outputs = model.generate(input_ids, max_length=2048, eos_token_id=speech_end_id, do_sample=True, top_p=1, temperature=0.8)
      
  4. 音声デコーディング::
    • 生成されたトークンをオーディオに変換します:
      from xcodec2.modelling_xcodec2 import XCodec2Model
      model_path = "HKUST-Audio/xcodec2"
      Codec_model = XCodec2Model.from_pretrained(model_path).eval().cuda()
      generated_ids = outputs[0][input_ids.shape[1]:-1]。
      speech_tokens = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)
      speech_ids = [int(token[4:-2]) for トークン in speech_tokens if token.startswith('')].
      speech_tokens_tensor = torch.tensor(speech_ids).cuda().unsqueeze(0).unsqueeze(0)
      gen_wav = Codec_model.decode_code(speech_tokens_tensor)
      sf.write("output.wav", gen_wav[0, 0, :].cpu().numpy(), 16000)
      

ボイスクローニング

  • 15秒程度のオリジナル・サウンドトラックを録音または準備する。::
    • 録音機器を使用するか、既存の音声ファイルを提供してください。
  • おんせいクローニングほうほう::
    • 元の音の周波数を、モデルが使用できるコードブックにエンコードする:
      prompt_wav = sf.read("your_source_audio.wav")[0] #はサンプルレート16kHzでなければならない。
      vq_code_prompt = Codec_model.encode_code(torch.from_numpy(prompt_wav).unsqueeze(0).cuda())
      
    • テキスト生成プロセスにオーディオキューを追加します:
      speech_ids_prefix = [f""foridin vq_code_prompt[0, 0, :].tolist()] とする。
      chat = [
      {"role": "user", "content": "テキストを音声に変換:" + formatted_text}、
      {"role": "assistant", "content": "" + ''.join(speech_ids_prefix)}。
      ]
      # 以降は音声合成と同じです。
      

ほら

  • Llasa-3Bは16kHzオーディオのみサポートしています。
  • モデルの性能は、入力テキストと音声の品質に直接影響され、入力の品質を保証する。
無断転載を禁じます:チーフAIシェアリングサークル " Llasa 1~8B: 高品質音声生成とクローニングのためのオープンソース音声合成モデル

チーフAIシェアリングサークル

チーフAIシェアリングサークルは、AI学習に焦点を当て、包括的なAI学習コンテンツ、AIツール、実践指導を提供しています。私たちの目標は、高品質のコンテンツと実践的な経験の共有を通じて、ユーザーがAI技術を習得し、AIの無限の可能性を一緒に探求することです。AI初心者でも上級者でも、知識を得てスキルを向上させ、イノベーションを実現するための理想的な場所です。

お問い合わせ
ja日本語