はじめに
シーエスエム Voice Cloningは、Isaiah Bjorkによって開発され、GitHubでホストされているオープンソースプロジェクトです。これはSesame CSM-1Bモデルに基づいており、ユーザーは音声サンプルを提供するだけで、自分の声をクローンし、自分だけの声を生成することができる。このツールは、ローカルGPUでの実行とModalクラウドでの実行の両方をサポートしており、コンテンツ制作者や開発者、音声技術に興味のあるすべての人に適している。クローン結果は完璧ではないが、生成された音声はターゲット音声の特徴を保持しており、その効果は認識できる。Pythonのインストールや環境設定など、技術的な基礎が必要だが、詳細なガイドが公式に公開されている。このプロジェクトは完全にフリーであり、コミュニティはコードの改良に貢献することを歓迎する。
機能一覧
- 音声クローニング:音声サンプルをアップロードして、サンプルに似た音声を生成します。
- テキスト読み上げ:テキストを入力し、クローン音声でオーディオファイルを生成します。
- ローカルで実行:スピーチ生成タスクを処理するために、個人のGPUを使用します。
- クラウドでの実行:Modalプラットフォームを通じてクラウドGPUで高速化。
- オープンソースのサポート:コードは公開されており、ユーザーによる修正や最適化が可能です。
- 一般的なオーディオ・フォーマットに対応:MP3またはWAVファイルをサンプルとして使用できます。
- パラメーター調整:異なる長さの音声に対応するため、モデルの設定を調整できます。
ヘルプの使用
設置プロセス
CSM Voice Cloningを使用するには、まずランタイム環境をセットアップする必要がある。以下はその詳細な手順である:
ローカルでインストールを実行する
- ハードウェアとソフトウェアの要件を確認する
- Python 3.10以降が必要。
- ローカルでの操作には、NVIDIA CUDA対応グラフィックカードと十分なビデオメモリが必要です。
- モデルと依存関係をダウンロードするために、インターネットに接続していることを確認してください。
- クローン・コード・リポジトリ
- ターミナル(Windowsの場合はCMDまたはPowerShell、Linux/Macの場合はBash)を開く。
- コマンドを入力する:
git clone https://github.com/isaiahbjork/csm-voice-cloning.git cd csm-voice-cloning
- 依存関係のインストール
- ターミナルで実行:
pip install -r requirements.txt
- これにより、PyTorchやHugging Faceなどの必要なライブラリがインストールされる。
- ターミナルで実行:
クラウドランのインストール(モーダル)
- モーダルのインストール
- ターミナルで実行:
pip install modal
- ターミナルで実行:
- モーダル認証の設定
- コマンドを入力する:
モーダル トークン 新しい
- プロンプトに従って、Modalアカウントにログインするか、新しいアカウントを作成します。
- コマンドを入力する:
ハグ顔アカウントの設定
- 登録とトークン取得
- 登録またはログインするには、ハギング・フェイスのウェブサイトをご覧ください。
- ある セサミ CSM-1B モデルページ リポジトリにアクセス」をクリックし、規約に同意する。
- APIトークンの生成:右上のアバターをクリック→設定→APIトークンの生成 トークン -> 新しいトークン
- セットアップ・トークン
- 方法1:端末に入力する:
export HF_TOKEN="あなたのトークン"
- 方法2:修正
voice_clone.py
ファイルでos.environ["HF_TOKEN"]。
トークンを埋めてください。
- 方法1:端末に入力する:
オーディオサンプルの準備
- オーディオの録音
- できればバックグラウンドノイズのない、2~3分のクリアな音声クリップを録音する。
- MP3またはWAV形式で保存する。
sample.mp3
.
- テキストの書き起こし
- 支出 ウィスパー などのツールを使って、音声の内容を正確に書き起こします(例:"Hello, this is my test audio")。
主な機能
ネイティブスピーカークローン
- パラメータの編集
- 見せる
voice_clone.py
ファイルを修正する:context_audio_path = "sample.mp3"
(オーディオパス)。context_text = "こんにちは、これは私のテストオーディオです"
(書き起こしテキスト)。text = "今日はいい天気ですね"
(生成されるテキスト)。output_filename = "output.wav"
(出力ファイル名)。
- 見せる
- ランニングプログラム
- それをターミナルに入力する:
python voice_clone.py
- 生成されたオーディオはプロジェクトフォルダに保存されます。
- それをターミナルに入力する:
クラウドベースの音声クローン(モーダル)
- パラメータの編集
- 見せる
モーダル_ボイスクローニング.py
ファイルで、ローカルと同じパラメータを設定する:context_audio_path = "sample.mp3"
.context_text = "こんにちは、これは私のテストオーディオです"
.text = "今日はいい天気ですね"
.output_filename = "output.wav"
.
- 見せる
- ランニングプログラム
- それをターミナルに入力する:
モーダル実行 modal_voice_cloning.py
- ModalはクラウドGPUを使ってタスクを処理し、完了したら出力ファイルをダウンロードする。
- それをターミナルに入力する:
モデル配列の長さを調整する
- オーディオサンプルが長い場合(2~3分以上)、テンソル次元のエラーが発生することがあります。
- 解決策
- 見せる
models.py
ドキュメンテーション - 見つける
ラマ3_2_1B()
関数を修正する。max_seq_len
パラメーターdef llama3_2_1B(). return llama3_2.llama3_2(max_seq_len=4096, ...).
- セキュア
ラマ3_2_100M()
の値が同じなら、保存して再実行してください。
- 見せる
注目の機能操作
クラウド・アクセラレーション(モデラル)
- モーダルは、強力なローカル・デバイスを持たない人々のためにクラウドGPUを提供している。
- 使い方は簡単で、Modalをインストールし、適切なスクリプトを実行するだけで、ローカルよりも高速な処理が可能です。
長い音声の処理
- デフォルトの設定は、2分50秒までのサンプルです。
- 長いオーディオは調整が必要
max_seq_len
(上記のように)、または推奨される長さにサンプルをクリップする。
よくある質問
- テンソル次元誤差
増加max_seq_len
値、またはオーディオサンプルを短くする。 - CUDA メモリ不足
より短いサンプルを使用するか、モーダルクラウドランに切り替える。 - モデルのダウンロードに失敗
Hugging Faceトークンとネットワークをチェックし、モデル条件が受け入れられたことを確認する。
アプリケーションシナリオ
- コンテンツ制作
- シーンの説明
キャスターは自分の声でビデオナレーションを生成できます。自己紹介の音声をアップロードし、スクリプトを入力すれば、数分で音声が生成されるため、何度も録音する必要がありません。
- シーンの説明
- 教育支援
- シーンの説明
教師が自分の声をクローンし、講義内容を入力することで授業音声が生成されます。学生はいつでも聞き返すことができ、通信教育に適しています。
- シーンの説明
- ゲーム開発
- シーンの説明
開発者がゲームキャラクターの声を担当。いくつかのサンプルを録音して複数の台詞を生成し、キャラクターのリアリズムを高めます。
- シーンの説明
品質保証
- オーディオ・サンプルはどのくらいの長さが必要ですか?
推奨2~3分。短すぎると結果が悪く、長すぎるとパラメータを調整できない。 - なぜ、生成された声は私に似ていないのか?
モデリングには限界があり、音の特徴は保持されていますが、完璧ではありません。サンプルがクリアであることを確認し、異なるテキストで何度か試してみてください。 - モーダルとローカルランニングの違いは?
モーダルはクラウドGPUを使用し、パワフルなデバイスを持たないユーザーでも高速に動作する。ローカルでの実行は無料ですが、優れたグラフィックカードが必要です。