はじめに
csm-mlxは、アップル社によって開発されたMLXフレームワークをベースに、アップルシリコン専用のCSM(Conversation Speech Model)音声対話モデル用に最適化されたものです。このプロジェクトにより、ユーザーはアップル・デバイス上で効率的な音声生成と対話機能をシンプルな方法で実行することができる。開発者のsenstellaは、より多くの人々にアップル・デバイスのパワーを活用してもらい、音声技術を探求してもらうことを目的として、2025年3月15日にこのプロジェクトをリリースした。プロジェクトの中核は、自然な音声の生成と対話シナリオの処理をサポートする、軽量で使いやすいツールを提供することである。
機能一覧
- 音声生成:テキストを入力すると、人間の自然な音声を生成します。
- 会話コンテキストのサポート:過去の会話内容に基づいて首尾一貫した音声応答を生成します。
- Appleデバイスの最適化:MLXフレームワークを使用したAppleシリコン上でのモデルの効率的な実行。
- オープンソースモデルのロード:Hugging Faceからトレーニング済みモデルのダウンロードをサポート(例:csm-1b)。
- 調整可能なパラメータ:温度(temp)や最小確率(min_p)などのサンプラーパラメータを調整し、ジェネレーション効果をコントロールします。
ヘルプの使用
設置プロセス
csm-mlxをローカルで使用するには、まずいくつかの依存するツールと環境をインストールする必要があります。以下はその詳細な手順である:
- 環境を整える
- macOSを使用していること、デバイスがアップル製シリコン(M1、M2チップなど)を搭載していることを確認してください。
- Python 3.10以降をインストールしてください。Pythonは次のコマンドでインストールできます。
brew install python@3.10
Homebrewによるインストール。 - Gitをインストールし
gitをインストールする
(すでにインストールされている場合は省略可能)。
- クローンプロジェクト
- ターミナルを開き、以下のコマンドを入力してcsm-mlxプロジェクトをダウンロードする:
git clone https://github.com/senstella/csm-mlx.git
- プロジェクトフォルダーに移動する:
cd csm-mlx
- ターミナルを開き、以下のコマンドを入力してcsm-mlxプロジェクトをダウンロードする:
- 仮想環境の構築
- プロジェクト・ディレクトリにPython仮想環境を作成する:
python3.10 -m venv .venv
- 仮想環境をアクティブにする:
ソース .venv/bin/activate
- プロジェクト・ディレクトリにPython仮想環境を作成する:
- 依存関係のインストール
- プロジェクトに必要なPythonパッケージをインストールし、実行する:
pip install -r requirements.txt
- 注:MLXフレームワークとHugging Faceがインストールされていることを確認する必要があります。
huggingface_hub
ライブラリーを使用してください。問題が発生した場合は、別途pip install mlx huggingface_hub
.
- プロジェクトに必要なPythonパッケージをインストールし、実行する:
- ダウンロードモデル
- 事前学習済みモデルを使用したcsm-mlx
csm-1b-mlx
.以下のコードを実行すると、自動的にダウンロードされます:python -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='senstella/csm-1b-mlx', filename='ckpt.safetensors')" "
- モデル・ファイルはローカル・キャッシュ・ディレクトリ(通常は
~/.cache/huggingface/hub
).
- 事前学習済みモデルを使用したcsm-mlx
使用方法
インストールが完了したら、Pythonスクリプトを使ってcsm-mlxの音声生成機能を実行することができます。以下はその手順である:
基本的なスピーチ生成
- 脚本を書く
- プロジェクト・ディレクトリに次のようなファイルを作成する。
generate_audio.py
次のコードを入力してください:from csm_mlx import シーエスエムcsm_1b, generate from mlx_lm.sample_utils import make_sampler from huggingface_hub import hf_hub_download # 初期化モデル csm = CSM(csm_1b()) weights = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors") csm.load_weights(weight) # 音声を生成する audio = generate( csm. text="Hello, I'm csm-mlx."、 speaker=0、 context=[]、 max_audio_length_ms=10000, # max_audio_length 10秒 sampler=make_sampler(temp=0.5, min_p=0.1) ) #でオーディオを保存 インポートオーディオファイル audiofile.write("output.wav", audio, 22050) # 22050はサンプルレートです。
- 注:オーディオの保存には
オーディオファイル
ライブラリを実行する。pip install audiofile
.
- プロジェクト・ディレクトリに次のようなファイルを作成する。
- スクリプトの実行
- それをターミナルに入力する:
python generate_audio.py
- これを実行すると、カレント・ディレクトリーに以下が生成される。
出力.wav
ファイルをダブルクリックして再生してください。
- それをターミナルに入力する:
ダイアログのコンテキストを追加する
- スクリプトサポートコンテキストの変更
- もしモデルに以前のダイアログに基づいて返答を生成させたいのであれば、以下のように
コンテキスト
パラメーター修正コードは以下の通り:from csm_mlx import CSM, csm_1b, generate, Segment import mlx.core as mx from huggingface_hub import hf_hub_download # モデルの初期化 csm = CSM(csm_1b()) weights = hf_hub_download(repo_id="senstella/csm-1b-mlx", filename="ckpt.safetensors") csm.load_weights(weight) # ダイアログコンテキストを作成する コンテキスト = [ Segment(speaker=0, text="こんにちは、今日の天気はどうですか?")音声=mx.array([...])), Segment(speaker=1, text="最高です、太陽が輝いています。") , audio=mx., audio=mx.array([...])) ] # 応答を生成する audio = generate( csm. text="Let's go for a walk then!" , 音声=mx., speaker=0、 context=context、 max_audio_length_ms=5000 ) # オーディオを保存する import audiofile audiofile.write("reply.wav", audio, 22050)
- 注目してほしい:
audio=mx.array([...])
以前のオーディオデータが必要です。そうでない場合は、まずベーシックジェネレーションでオーディオを生成し、その結果で埋めることができる。
- もしモデルに以前のダイアログに基づいて返答を生成させたいのであれば、以下のように
- 実行とテスト
- はこびだす
python generate_audio.py
文脈を考慮した音声ファイルの生成reply.wav
.
- はこびだす
パラメタリゼーション
- 温度: 発話のランダム性を制御します。値が小さい(例えば0.5)ほど安定した音声になり、値が大きい(例えば1.0)ほど変化に富んだ音声になります。
- 最大長 (max_audio_length_ms)単位はミリ秒。
- 調整方法:インチ
メイク・サンプラー
もしかしたらジェネレート
関数を使用してパラメータを変更し、スクリプトを再実行する。
ほら
- オーディオを生成する際にメモリの問題が発生する場合は、以下のようにサイズを小さくしてみてください。
最大オーディオ長
. - モデルの最初の実行には、約数GBのウェイトファイルをダウンロードする必要があるため、インターネット接続が良好であることを確認してください。
アプリケーションシナリオ
- 教材
csm-mlxを使用することで、教育内容の音声解説を生成することができます。例えば、テキストを入力すると、リスニング練習用の自然な音声が生成されます。 - バーチャルアシスタント開発
開発者はcsm-mlxを使ってインテリジェントな音声アシスタントを作ることができる。対話コンテキスト機能と組み合わせることで、アシスタントはユーザーの言葉に基づいて首尾一貫した応答を生成することができる。 - コンテンツ制作
ポッドキャスト制作者は、スクリプトを音声に変換したり、オーディオクリップを素早く生成したり、録音時間を節約したりするのに使うことができる。
品質保証
- csm-mlxは中国語をサポートしていますか?
はい、中国語の入力に対応し、中国語の音声を生成します。ただし、その効果は学習データに依存するため、特定の発話をテストして品質を確認することをお勧めします。 - 必要なハードディスク容量は?
モデルファイルは約1~2GBで、さらに依存ライブラリと生成ファイルのために5GBの容量が必要です。 - Windowsでも使えますか?
いいえ、csm-mlxはアップル・シリコン用に設計されており、MLXフレームワークに依存しています。