声を変えるツールは世の中にたくさんある。でも「使いやすい」ものがない。
RVC は 700 件以上のオープンイシューを抱えたまま事実上放置、seed-vc はアーカイブ済み、vcclient は Mac で動かず API もない、GPT-SoVITS はセットアップに 2 時間かかる。そのどれもが「ツール」であって「プラットフォーム」ではない。
そこで作ったのが koelab だ。
コンセプト: Ollama for Voice
LLM の世界では Ollama が「モデルを pull して run する」という体験を定着させた。同じことを音声モデルでやる。それだけのコンセプトだ。
koelab pull seed-vc
koelab run seed-vc -i source.wav -r reference.wav -o output.wav
これだけで動く。GPU があれば自動的に使う。なければ CPU にフォールバックする。モデルのダウンロード先もキャッシュも全部 koelab が管理する。
何ができるか
1. ファイルベースの声変換
最もシンプルな使い方。source.wav を reference.wav の声に変換する。
koelab run seed-vc \
--input source.wav \
--reference target_voice.wav \
--output converted.wav \
--steps 25 \
--similarity 0.7
--steps は拡散ステップ数(高いほど高品質、遅い)、--similarity は声の類似度(0.0〜1.0)。
2. リアルタイム声変換
マイク入力をリアルタイムで別の声に変換する。ヘッドセット推奨。
koelab live seed-vc -r reference_voice.wav
ラップトップの内蔵マイク・スピーカーでも動くが、スピーカーからの音がマイクに回り込むので実用はヘッドセットが前提。
デバイスの確認と選択:
koelab audio-devices
koelab live seed-vc \
--reference voice.wav \
--input-device 1 \
--output-device 3 \
--block-time 0.25 \
--silence-threshold 0.003 \
--save-output live.wav # 変換後の音声を WAV ファイルに保存(省略可)
Windows でデバイスを選ぶ際は、koelab audio-devices で表示されるホスト API(MME・DirectSound・WASAPI・WDM-KS)が入力と出力で一致するペアを選ぶこと。
3. テキスト読み上げ (TTS)
日本語 TTS の irodori-tts、多言語 TTS の xtts-v2 に対応している。
koelab pull irodori-tts
koelab speak irodori-tts --text "こんにちは、koelab です。" -o hello.wav
koelab pull xtts-v2
koelab speak xtts-v2 --text "Hello from koelab." --language en -o hello_en.wav
xtts-v2 は --reference が必須(--no-ref には非対応)。
xtts-v2 は英語・スペイン語・フランス語・ドイツ語・日本語・韓国語など 17 言語に対応。
4. WebUI + REST API
pip install koelab[api]
koelab serve
ブラウザで http://localhost:11435 を開くと WebUI が使える。
WebUI でできること:
- マイクで直接録音してそのままソース音声として使う(波形メーター付き)
- 参照音声をライブラリに保存して名前をつけて管理
- よく使う参照音声をお気に入り 3 スロットに登録
- 変換履歴の一覧・再生・ダウンロード・設定の再利用
- fast / balanced / quality のプリセット切り替え
/ttsページで irodori-tts / xtts-v2 による読み上げ
API は FastAPI ベースで、http://localhost:11435/docs に Swagger UI がある。
5. モデルレジストリ
利用可能なモデルの一覧をリモートから取得する(1 時間キャッシュ)。
koelab models # 全モデル一覧(リモートレジストリから取得)
koelab info seed-vc # 詳細情報(作者・ライセンス・VRAM・言語など)
koelab search tts # キーワード検索
koelab list # インストール済みモデルの一覧
koelab remove seed-vc # インストール済みモデルの削除
現在レジストリに登録されているモデル:
| モデル | 種別 | 特徴 |
|---|---|---|
seed-vc | 声変換 | AR+CFM パイプライン、高品質 |
seed-vc-v1 | 声変換 | DiT ベース、高速 |
openvoice | トーンカラー移植 | MyShell 製、軽量 (0.3 GB) |
irodori-tts | 日本語 TTS | Flow Matching、声クローニング対応 |
xtts-v2 | 多言語 TTS | 17 言語対応、Coqui 製 |
インストール
Python 3.11 または 3.12 を推奨(3.11+ 必須)。グローバル環境への直接インストールは避け、仮想環境を使うこと。
# venv を使う場合(Windows)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install --upgrade pip
# uv を使う場合
uv venv
uv pip install koelab
基本インストール
pip install koelab
ただし pip install koelab 単体では声変換・TTS の依存ライブラリは入らない。使いたいモデルに応じて extras を追加でインストールする必要がある。
pip install "koelab[seed-vc]" # seed-vc, seed-vc-v1 用
pip install "koelab[openvoice]" # openvoice 用
pip install "koelab[irodori]" # irodori-tts 用
pip install "koelab[xtts]" # xtts-v2 用
API + WebUI も使う場合
pip install "koelab[api]"
[api] は FastAPI + uvicorn のみを追加する。モデルを動かすには上記の extras も別途必要。
FFmpeg
必須ではないが強く推奨。.m4a・.aac・.ogg 等の形式を扱う場合に必要になる。Windows では autoffmpeg を使うと自動セットアップできる。
Docker
git clone https://github.com/superdoccimo/koelab.git
cd koelab
docker compose build
docker compose run koelab pull seed-vc
docker compose run koelab run seed-vc \
-i /app/audio/source.wav \
-r /app/audio/reference.wav \
-o /app/audio/output.wav
技術的な構造
エンジン抽象化
全モデルは BaseEngine ABC を実装する。
BaseEngine
├── SeedVCEngine (seed-vc, seed-vc-v1)
├── OpenVoiceEngine (openvoice)
└── BaseTTSEngine
├── IrodoriTTSEngine (irodori-tts)
└── XTTSv2Engine (xtts-v2)
新しいエンジンを追加するには BaseEngine を継承して load() / convert() / unload() を実装し、registry/models.json にエントリを追加するだけでいい。
リモートレジストリ
モデルのメタデータは GitHub 上の registry/models.json からフェッチする。ローカルに 1 時間キャッシュされるので、毎回ネットワークアクセスは発生しない。オフラインでも最後のキャッシュから動作する。
doctor コマンド
環境の問題を自己診断する。
koelab doctor # Python・FFmpeg・Git の有無と TTS 依存関係をチェック
koelab doctor irodori-tts # irodori-tts に絞って診断
koelab doctor xtts-v2 # xtts-v2 に絞って診断
セットアップでつまずいたときの最初の一手。
よくある質問
GPU がなくても動きますか? 動きます。--device cpu を指定するか、auto のまま使えば CPU にフォールバックします。ただし速度は大幅に落ちます。
Windows で動きますか? 動きます。CI で Windows + Python 3.11/3.12 のスモークテストを回しています。
リアルタイム変換の遅延はどのくらいですか? --block-time 0.1 (100ms ブロック) + GPU 環境で概ね 200〜400ms 程度。CPU では 1 秒以上になることがあります。
新しいモデルを追加してもらうにはどうすればいいですか? registry/models.json にエントリを追加する PR を送ってください。エンジンの実装が必要な場合は issue で相談してください。
リンク
koelab は MIT ライセンスです。xtts-v2 モデルは Coqui CPML ライセンスが適用されます(商用利用に制限あり)。詳細は koelab info xtts-v2 で確認してください。


