GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Wraps the ownvoice CLI as a single generic MCP tool for voice/identity checks.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"ownvoice": {
"command": "uvx",
"args": [
"ownvoice-cli",
"ownvoice-mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add ownvoice -- uvx ownvoice-cli ownvoice-mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"ownvoice": {
"command": "uvx",
"args": [
"ownvoice-cli",
"ownvoice-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"ownvoice": {
"type": "stdio",
"command": "uvx",
"args": [
"ownvoice-cli",
"ownvoice-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub RudrenduPaul ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.5) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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
ตัดมาแค่ช่วงต้น อ่านต่อใน repo