ソフトウェア/LMStudio/Orpheus の履歴(No.1)
更新Orpheus TTS(英語読み上げAI)環境構築メモ†
概要†
Orpheus は非常に自然な英語を話せるモデル。
ここに英文を与えて wav ファイルを作成できる環境を作りたい。
具体的には、
- Windows11 機(LM Studio)を TTS 推論サーバーとして利用
- 別マシン(クライアント)からリモートでテキスト→音声変換を行う
構成†
- サーバー側(Windows, VRAM 12GB): LM Studio + orpheus-3b-0.1-ft (GGUF, isaiahbjork版)
- クライアント側(Debian等): isaiahbjork/orpheus-tts-local の gguf_orpheus.py
手順†
1. サーバー側(Windows機)セットアップ†
- LM Studioをインストール
- https://lmstudio.ai/ からダウンロード
- モデルをダウンロード
- Discover(検索)タブで検索、または以下のCLI
lms get isaiahbjork/orpheus-3b-0.1-ft-Q4_K_M-GGUF
- Discover(検索)タブで検索、または以下のCLI
- リモートアクセスを許可
- Developerタブ → サーバー設定 → バインドアドレスを 0.0.0.0 に変更
- Windowsファイアウォールでポート1234を開放
New-NetFirewallRule -DisplayName "LM Studio API" -Direction Inbound -Protocol TCP -LocalPort 1234 -Action Allow
- 実際のモデルIDを確認(フォルダ名やHF repo名とは一致しないので注意)
curl http://<Windows機IP>:1234/v1/models
- "id" フィールドの値(例: orpheus-3b-0.1-ft)を後の手順で使う
2. クライアント側セットアップ†
- リポジトリをclone
git clone https://github.com/isaiahbjork/orpheus-tts-local.git cd orpheus-tts-local
- 仮想環境作成(Python 3.11指定。3.12以降は非対応のパッケージがあるため)
uv venv --python 3.11 source .venv/Scripts/activate
- requirements.txt の罠を先に除去
- 「wave」という行がある場合は削除する(標準ライブラリ名と同名の無関係なPyPIパッケージがヒットし、mysql-pythonのビルドエラーで失敗するため)
sed -i '/^wave/d' requirements.txt
- 「wave」という行がある場合は削除する(標準ライブラリ名と同名の無関係なPyPIパッケージがヒットし、mysql-pythonのビルドエラーで失敗するため)
- 依存関係インストール
uv pip install -r requirements.txt
- API_URLをサーバー機のIPに書き換え(gguf_orpheus.py 冒頭、コマンドライン引数化されていないため直接編集が必要)
API_URL = "http://<Windows機IP>:1234/v1/completions"
3. モデルをロード(リモートから)†
curl http://<Windows機IP>:1234/api/v1/models/load \
-H "Content-Type: application/json" \
-d '{"model": "<手順1で確認した実際のID>"}'
- 成功すると "status": "loaded" が返る
- JITローディング対応のため省略可能な場合もあるが、確実性のため明示ロード推奨
4. 音声生成†
python gguf_orpheus.py --text "Hello, this is a test" --voice tara --output test.wav
- 利用可能な声: tara, leah, jess, leo, dan, mia, zac, zoe(tara推奨)
- 感情タグ: <laugh> <chuckle> <sigh> <cough> <sniffle> <groan> <yawn> <gasp>
- 声一覧確認: python gguf_orpheus.py --list-voices
トラブルシューティングメモ†
- 「ModuleNotFoundError」が出るのに pip list には入っている
- 原因: python コマンドが仮想環境と違う実体を指している
- 確認: type -a python (whichではなくtypeを使う。aliasやbash内部キャッシュの影響を見るため)
- 対処: unalias python、または hash -r、または .venv/Scripts/python で直接パス指定
- LM Studioで "model_not_found" エラー
- 原因: HuggingFaceのリポジトリ名(例: isaiahbjork/orpheus-3b-0.1-ft-Q4_K_M-GGUF)と、LM StudioがAPI上で使うID(例: orpheus-3b-0.1-ft)は別物
- 対処: /v1/models で実際のIDを確認してから使う
- requirements.txt のインストールでビルドエラー(Visual C++ 14.0が必要 等)
- 標準ライブラリ名と衝突する野良PyPIパッケージ(wave, os等)が紛れ込んでいないか確認
- 該当行を削除して標準ライブラリ側を使わせる
今後の課題†
- 日本語(VoiceCore, webbigdata/VoiceCore)も同様の手順でLM Studioに載せ、英日を model パラメータの切り替えだけで使い分けられるか検証
- GPU使用率確認(今回は "Using device: cpu" で動作。速度不足なら要調整)
Counter: 142 (from 2010/06/03),
today: 1,
yesterday: 4