ソフトウェア/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機)セットアップ

  1. LM Studioをインストール
  1. モデルをダウンロード
    • Discover(検索)タブで検索、または以下のCLI
      lms get isaiahbjork/orpheus-3b-0.1-ft-Q4_K_M-GGUF
  1. リモートアクセスを許可
    • Developerタブ → サーバー設定 → バインドアドレスを 0.0.0.0 に変更
    • Windowsファイアウォールでポート1234を開放
      New-NetFirewallRule -DisplayName "LM Studio API" -Direction Inbound -Protocol TCP -LocalPort 1234 -Action Allow
  1. 実際のモデルIDを確認(フォルダ名やHF repo名とは一致しないので注意)
    curl http://<Windows機IP>:1234/v1/models
    • "id" フィールドの値(例: orpheus-3b-0.1-ft)を後の手順で使う

2. クライアント側セットアップ

  1. リポジトリをclone
    git clone https://github.com/isaiahbjork/orpheus-tts-local.git
    cd orpheus-tts-local
  1. 仮想環境作成(Python 3.11指定。3.12以降は非対応のパッケージがあるため)
    uv venv --python 3.11
    source .venv/Scripts/activate
  1. requirements.txt の罠を先に除去
    • 「wave」という行がある場合は削除する(標準ライブラリ名と同名の無関係なPyPIパッケージがヒットし、mysql-pythonのビルドエラーで失敗するため)
      sed -i '/^wave/d' requirements.txt
  1. 依存関係インストール
    uv pip install -r requirements.txt
  1. 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