GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
Wraps the ownvoice CLI as a single generic MCP tool for voice/identity checks.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"ownvoice": {
"command": "uvx",
"args": [
"ownvoice-cli",
"ownvoice-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add ownvoice -- uvx ownvoice-cli ownvoice-mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"ownvoice": {
"command": "uvx",
"args": [
"ownvoice-cli",
"ownvoice-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"ownvoice": {
"type": "stdio",
"command": "uvx",
"args": [
"ownvoice-cli",
"ownvoice-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント RudrenduPaul で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.5)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Train a LoRA voice adapter for pocket-tts and keep the result: a file on your own disk, not an API subscription.
pip install ownvoice-cli
Requires Python 3.11 or newer. See Install below for the npx / agent-sandbox path.
pip install ownvoice-cli
npx / agent-native environments: OwnVoice is a Python/PyTorch CLI, so the npm package is a thin wrapper, not a Node reimplementation. It bootstraps into the real CLI via uv or pipx, whichever is already on PATH, useful for coding-agent sandboxes and CI runners that default to a Node toolchain. The npm package was renamed to ownvoice-cli (from the old plain ownvoice, now deprecated) to match its PyPI counterpart.
npx ownvoice-cli check
Both the npm wrapper and the PyPI package (ownvoice-cli) are live, so the command above works today.
Torch and CUDA: ownvoice check needs no GPU at all and runs on CPU, matching pocket-tts's own CPU-capable design. Training a real adapter is much faster on an NVIDIA GPU. If you have one, install the CUDA build of PyTorch first by following pytorch.org/get-started/locally, then install OwnVoice on top of it, so pip does not silently pull the CPU-only wheel instead. On Apple Silicon or a CPU-only machine, the default pip install of torch is fine: ownvoice check and ownvoice infer run normally, ownvoice train just takes longer per epoch.
ownvoice check, the free Day-0 validationBefore recording anything or renting a GPU, confirm that PEFT's LoRA injection actually works against pocket-tts's real model structure. This is entirely free: CPU only, no training, no GPU.
$ ownvoice check
[ownvoice check] PASS: PEFT LoRA injection succeeded against pocket-tts's flow_lm module (target_modules="all-linear").
If it fails, OwnVoice prints the model's real module tree instead of a raw stack trace, so you can see exactly what did not match and report it precisely:
$ ownvoice check
[ownvoice check] FAIL: PEFT LoRA injection failed against pocket-tts's flow_lm module structure: . Please post an honest blocker (this error plus the module tree above) as a comment on https://github.com/kyutai-labs/pocket-tts/issues/30 rather than working around it silently, that issue is exactly where this gap needs to be visible.
Module tree (for debugging / for the issue #30 blocker post): : FlowLMModel input_linear: Linear transformer: StreamingTransformer transformer.layers.0.self_attn.in_proj: Linear transformer.layers.0.self_attn.out_proj: Linear ...
ownvoice trainRecord 5 to 10 minutes of clean audio of the voice you want to train (your own voice, with your own consent, see Consent and misuse), split into a few .wav clips in one directory, then point OwnVoice at it:
$ ownvoice train --voice-clips ./my-voice-clips
[ownvoice train] USABLE ADAPTER Usable adapter (similarity 0.812 >= 0.75). Try it now: ownvoice infer --adapter ownvoice-adapter/adapter.safetensors --text "This is my own voice, trained with OwnVoice."
Only --voice-clips is required. Every other flag has a sensible default (see the full CLI Reference below).
A run that finishes but does not clear the similarity bar still exits 0. It is a labeled result with a concrete next step, not a crash:
$ ownvoice train --voice-clips ./my-voice-clips
[ownvoice train] BELOW THRESHOLD Below threshold (similarity 0.612 < 0.75). The adapter was still saved, try more/cleaner voice clips, more epochs, or a higher --lora-rank, then re-run. You can still listen to it: ownvoice infer --adapter ownvoice-adapter/adapter.safetensors --text "This is my own voice, trained with OwnVoice."
Only a data-loading problem (no usable clips) or a caught PEFT-injection failure exits non-zero. A finished run always writes adapter.safetensors and metadata.json (training config, similarity score, a timestamp) to the output directory: two files you keep, with no server round-trip needed to use them again.
ownvoice infer$ ownvoice infer --adapter ownvoice-adapter/adapter.safetensors --text "Hello, this is my own voice."
[ownvoice infer] Wrote ownvoice-output.wav
Every subcommand also supports --json for a structured, machine-parseable output mode, useful if a script or an agent is calling ownvoice programmatically instead of a person reading the terminal:
$ ownvoice check --json
{"success": true, "message": "PEFT LoRA injection succeeded against pocket-tts's flow_lm module (target_modules=\"all-linear\").", "module_tree": null}
Reference below is taken directly from each subcommand's real --help output (ownvoice-cli 0.1.2 on PyPI).
ownvoice [OPTIONS] COMMAND [ARGS]...
| Flag | Description |
|---|---|
--version | Print the OwnVoice version and exit. |
--help | Show the help message and exit. |
ownvoice checkFree, CPU-only compatibility check: load pocket-tts and dry-run the LoRA injection. No GPU and no training required.
| Flag | Description |
|---|---|
--json | Print machine-readable JSON instead of human-readable text. |
--help | Show the help message and exit. |
ownvoice trainTrain a LoRA voice adapter from a directory of .wav voice clips. Only --voice-clips is required.
| Flag | Type | Default | Description |
|---|---|---|---|
--voice-clips | directory, required | – | Directory of .wav voice-clip recordings to train from. |
--out | path | ownvoice-adapter | Directory to write adapter.safetensors + metadata.json to. |
--epochs | int, >=1 | 10 | Number of training epochs. |
--lora-rank | int, >=1 | 8 | LoRA rank. |
--lora-alpha | int, >=1 | 16 | LoRA alpha. |
--lora-dropout | float, 0.0–1.0 | 0.05 | LoRA dropout. |
--learning-rate | float | 0.0001 | Optimizer learning rate. |
--eval-text | string | "This is my own voice, trained with OwnVoice." | Sentence synthesized after training to score against the reference voice. |
--json | flag | off | Print machine-readable JSON instead of human-readable text. |
--help | flag | – | Show the help message and exit. |
ownvoice inferGenerate speech in the trained voice from a saved adapter, and save it to a .wav file.
| Flag | Type | Default | Description |
|---|---|---|---|
--adapter | path, required | – | Path to a trained adapter.safetensors file. |
--text | string, required | – | Text to synthesize in the trained voice. |
--out | path | ownvoice-output.wav | Output .wav file path. |
--reference-audio | path | recorded reference | Override the reference clip OwnVoice recorded in metadata.json at train time. |
--json | flag | off | Print machine-readable JSON instead of human-readable text. |
--help | flag | – | Show the help message and exit. |
ownvoice check loads pocket-tts and dry-runs PEFT's LoRA injection against its real flow_lm module tree, CPU only, no training. On failure it prints the actual module tree instead of a stack trace, so a real blocker is reportable instead of silent.0.75 or higher is labeled USABLE ADAPTER; anything lower is BELOW THRESHOLD, a labeled outcome and not a crash, exit code 0 either way.check, train, and infer all accept --json, returning one machine-parseable object instead of colored terminal text: confirmed directly, ownvoice check --json returns {"success": true, "message": "...", "module_tree": null}.adapter.safetensors (the trained weights, a few megabytes at the default --lora-rank 8) and metadata.json (the full training config, similarity score, per-epoch loss, and a timestamp) to disk. Load them back any time later with ownvoice infer, no network call required.target_modules="all-linear" against pocket-tts's real flow_lm layers) stays exact instead of generic.voice clips (wav)
| v data.py --validate format/duration--> clean clip set | v train.py --PEFT LoRA (target_modules="all-linear")--> adapter.safetensors + metadata.json | v infer.py --generate test utterance--> synthesized audio | v score.py --resample to 16kHz mono--> Resemblyzer cosine similarity | v CLI report (>= 0.75 = usable adapter, below triggers a labeled next-step message)
ownvoice/data.py loads and validates the voice-clip directory. ownvoice/train.py loads pocket-tts's frozen base model, injects a LoRA adapter into its flow_lm transformer with PEFT (target_modules="all-linear"), runs the training loop, and saves the adapter plus a manifest. ownvoice/infer.py loads a saved adapter back onto the base model and generates speech. ownvoice/score.py resamples audio to 16kHz mono with torchaudio.transforms.Resample and scores speaker similarity with Resemblyzer.
OwnVoice is intentionally single-model: it wraps pocket-tts only, with no abstraction layer for a second base model, since none is in scope.
| Tool | Time to first working setup | Notable design choice | Source |
|---|---|---|---|
| kokoro-tts | under 2 minutes | pip install git+..., instant CLI synthesis, no fine-tuning | kokoro-tts README |
| Unsloth | under 1 minute to start a run | one-command training start (uv pip install) | Unsloth docs |
| pocket-tts | seconds | --voice zero-shot cloning, no training available | pocket-tts README |
| OwnVoice | under 2 minutes to a co
冒頭だけを表示しています。続きはリポジトリで読めます