CHIVOX AI
About
The assessment layer for spoken language agents — phoneme-level diagnosis, fluency scoring, and Mandarin tone analysis, served through a single function call with zero audio infrastructure.
Details
- Author
- chivox-developer
- Categories
- Developer Tools
Jump to
Setup
Install CHIVOX AI in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/chivox-developer/chivox-speech-eval-mcp
Follow the installation instructions in the repository README, then restart your MCP client.
https://github.com/chivox-developer/chivox-speech-eval-mcp/raw/main/assets/chivox-mcp.mp4
TL;DR— LLMs can't hear audio.Chivox MCPis a hosted MCP server that scores pronunciation at the phoneme level — Mandarin tones included. Onetools/callreturnsoverall / accuracy / pron / fluency / details[].phone[]in a stable JSON shape your model can reason over. Not STT. Not a Whisper wrapper.
Most production teams runWhisper + Chivox together: Whisper to transcribe what was said, Chivox to score how well. They don't compete.
Chivox Speech Evaluation MCP Server exposes professional speech assessment capabilities asModel Context Protocol (MCP)tools. Connect your AI assistant to our cloud service and let it evaluate pronunciation quality for English and Chinese.
Service endpoint:https://mcp-global.cloud.chivox.com
- 16 evaluation tools— word, sentence, paragraph, phonics, real-time reading, and more
- English + Chinese— 10 English tools, 6 Chinese tools
- Real-time streaming— WebSocket-based live audio evaluation
- Multiple audio inputs— URL, Base64, or file upload
- Works everywhere— Claude Desktop, Cursor, and any MCP-compatible client
- Dual authentication— B2C (API Key) and B2B (JWT)
Hosted endpoint:https://mcp-global.cloud.chivox.com· every request needsAuthorization: Bearer <api_key>.Get a key →
// ~/.cursor/mcp.json { "mcpServers": { "chivox-speech-eval": { "type": "streamable-http", "url": "https://mcp-global.cloud.chivox.com", "headers": { "Authorization": "Bearer <your_api_key>" } } } }
from langchain_mcp_adapters.client import MultiServerMCPClient from langgraph.prebuilt import create_react_agent client = MultiServerMCPClient({ "chivox": { "transport": "streamable_http", "url": "https://mcp-global.cloud.chivox.com", "headers": {"Authorization": "Bearer <your_api_key>"}, } }) tools = await client.get_tools() # discovers all 16 tools agent = create_react_agent("openai:gpt-4o-mini", tools) result = await agent.ainvoke({"messages": [( "user", "Score https://example.com/audio/sentence.mp3, ref: I think therefore I am", )]})
from agents import Agent, Runner from agents.mcp import MCPServerStreamableHttp chivox = MCPServerStreamableHttp( params={ "url": "https://mcp-global.cloud.chivox.com", "headers": {"Authorization": "Bearer <your_api_key>"}, }, name="chivox-speech-eval", ) async with chivox: agent = Agent( name="coach", instructions="Professional speaking coach", mcp_servers=[chivox], ) r = await Runner.run( agent, "Score https://example.com/audio/sentence.mp3, ref: I think therefore I am", ) print(r.final_output)
Claude Desktop(mic streaming via local proxy)
// ~/Library/Application Support/Claude/claude_desktop_config.json { "mcpServers": { "chivox": { "command": "chivox-local-mcp", "env": { "MCP_REMOTE_URL": "https://mcp-global.cloud.chivox.com", "MCP_API_KEY": "<your_api_key>" } } } }
import asyncio from mcp.client.streamable_http import streamablehttp_client from mcp import ClientSession async def main(): async with streamablehttp_client( "https://mcp-global.cloud.chivox.com", headers={"Authorization": "Bearer <your_api_key>"}, ) as (r, w, _): async with ClientSession(r, w) as s: await s.initialize() out = await s.call_tool("en_sentence_eval", { "ref_text": "I think therefore I am", "audio_url": "https://example.com/audio/sentence.mp3", }) print(out) asyncio.run(main())
More clients (Claude Code, Windsurf, Zed, Mastra, function-calling mode) →docs → Clients
Every tool returns thesame top-level shape— switch locale or granularity with zero schema work. Example for"hello":
{ "overall": 85, "accuracy": 82, "pron": 88, "integrity": 95, "fluency": { "overall": 78, "speed": 65, "pause": 2 }, "details": [ { "char": "hello", "score": 85, "phone": [ { "phoneme": "h", "score": 90, "dp_type": "normal" }, { "phoneme": "ɛ", "score": 82, "dp_type": "normal" }, { "phoneme": "l", "score": 88, "dp_type": "normal" }, { "phoneme": "oʊ", "score": 80, "dp_type": "normal" } ] } ] }
For English mispronunciations,phoneme_error: { expected, actual }is included. Mandarin addstone_ref/tone_detectedwith sandhi-awaredp_typeverdicts.Full field list →
Inline audio:passaudio_urloraudio_base64in the tool call — no upload round-trip.Formats:mp3 · wav · ogg · m4a · aac · pcm.
Two ways to feed audio —same result shape, different UX. Function-calling fallback:fc-global.cloud.chivox.com.
Rule of thumb— useWhisperto knowwhatwas said; useChivoxto knowhow well. They stack.
💬 …and here's what your LLM does with it
Pipe that JSON straight into any chat model with a one-line system prompt —"You are a warm pronunciation coach. Diagnose, then drill."— and you get a real lesson back.No fine-tuning. No audio understanding. Justchat.completion.
Why this works— the LLM never "heard" the audio. The JSONnamesthe problem in fields it already understands (dp_type: "mispron",phoneme_error.actual,tone_refvstone_detected), so a vanillachat.completioncan diagnose like a human teacher.
🎤Input:1-minute learner recording →Output:warm feedback + targeted drill, end-to-end in < 1.6 seconds.
30M+learners worldwide study Mandarin — including heritage speakers and adult beginners — yet few platforms score tone errors (mā / má / mǎ / mà) at the phoneme level in English. Chivox's Chinese engine is trained on the same data that powers China's Putonghua Proficiency Test (普通话水平测试, PSC).
Exam-grade rubrics on the same MCP endpoints:IELTS · TOEFL · Cambridge YLE · K-12 reading assessmentsfor English, plus PSC-aligned Mandarin scoring. Same JSON shape, 20+ scoring dimensions — just changeref_textandaccent.
Plus:streaming + inlinemodes ·TLS 1.3end-to-end · audio discarded after scoring (JSON retained 30 days) · on-prem available for enterprise ·limits & privacy →
Honest defaults. Start with600 free calls(30 days) andall 16 tools unlocked— no feature gates, no card. When you need more, pay per successful call attiered rates— the more you ship, the cheaper each call gets.
Free tier ≠ crippled tier.Every new account gets600 free calls valid for 30 dayswith thefull 16-tool catalog— same engine, same JSON, same SLA as paid keys. After the trial window or when calls are used up, top up from$10and let thevolume tiersdo the rest. Failed calls are never billed.
Is this just another wrapper around Whisper?No. Whisper transcribes; Chivox scores. The engine is trained on exam-graded samples and returns phoneme-leveldetails[].phone[]— not a transcript. Most teams run both.
Does it work offline / on-device?The hosted MCP server needs outbound access to the scoring engine. For air-gapped deployments, contact us — we ship an on-prem container for enterprise customers.
What about dialects and accents?Mandarin targets standard Pǔtōnghuà with sandhi-aware tone verdicts. English supports en-US, en-GB, and en-AU rubrics via locale parameters on the relevant tools.
Which LLMs work out of the box?Any model with OpenAI-style function calling: GPT-4o / 5.x, Claude Sonnet / Opus, Gemini, DeepSeek, GLM, Kimi, Doubao, Qwen. Tool schemas are forwarded verbatim.
Can I use this in a browser?For quick demos, yes — but production traffic should flow through your backend so the API key stays server-side.Privacy notes →
1. Create session → tools/call: create_stream_session ↓ returns ws_url 2. Connect WebSocket → wss://{ws_url}/ws/audio/{session_id} ↓ 3. Send audio frames → Binary frames (8KB chunks recommended) ↓ 4. Stop & get result → Send {"cmd": "stop"}, receive final scores
- API Reference— Full protocol documentation, authentication, tool parameters, and streaming details
- Website:chivox.com
- Issues:GitHub Issues
多数生产团队Whisper + 驰声一起用:Whisper 识别说了什么,驰声评估说得怎么样。两者互补。
驰声语音评测 MCP 服务基于Model Context Protocol (MCP)标准,将专业语音评测能力封装为 MCP 工具,供 AI 客户端(Claude Desktop、Cursor 等)直接调用。
服务地址:https://mcp-global.cloud.chivox.com
- 16 种评测工具— 单词、句子、段落、自然拼读、实时朗读等
- 中英文双语— 10 种英文评测 + 6 种中文评测
- 实时流式评测— 通过 WebSocket 实时推送音频,获取评测结果
- 多种音频输入— 支持 URL、Base64 编码、文件上传
- 广泛兼容— 支持 Claude Desktop、Cursor 及任何 MCP 兼容客户端
- 双认证模式— B2C(API Key)和 B2B(JWT 签名)
服务地址:https://mcp-global.cloud.chivox.com· 每个请求需携带Authorization: Bearer <api_key>。获取 Key →
// ~/.cursor/mcp.json { "mcpServers": { "chivox-speech-eval": { "type": "streamable-http", "url": "https://mcp-global.cloud.chivox.com", "headers": { "Authorization": "Bearer <your_api_key>" } } } }
from langchain_mcp_adapters.client import MultiServerMCPClient from langgraph.prebuilt import create_react_agent client = MultiServerMCPClient({ "chivox": { "transport": "streamable_http", "url": "https://mcp-global.cloud.chivox.com", "headers": {"Authorization": "Bearer <your_api_key>"}, } }) tools = await client.get_tools() # 自动发现全部 16 个工具 agent = create_react_agent("openai:gpt-4o-mini", tools) result = await agent.ainvoke({"messages": [( "user", "评测 https://example.com/audio/sentence.mp3,参考文本:I think therefore I am", )]})
from agents import Agent, Runner from agents.mcp import MCPServerStreamableHttp chivox = MCPServerStreamableHttp( params={ "url": "https://mcp-global.cloud.chivox.com", "headers": {"Authorization": "Bearer <your_api_key>"}, }, name="chivox-speech-eval", ) async with chivox: agent = Agent( name="coach", instructions="专业口语教练", mcp_servers=[chivox], ) r = await Runner.run( agent, "评测 https://example.com/audio/sentence.mp3,参考文本:I think therefore I am", ) print(r.final_output)
// ~/Library/Application Support/Claude/claude_desktop_config.json { "mcpServers": { "chivox": { "command": "chivox-local-mcp", "env": { "MCP_REMOTE_URL": "https://mcp-global.cloud.chivox.com", "MCP_API_KEY": "<your_api_key>" } } } }
import asyncio from mcp.client.streamable_http import streamablehttp_client from mcp import ClientSession async def main(): async with streamablehttp_client( "https://mcp-global.cloud.chivox.com", headers={"Authorization": "Bearer <your_api_key>"}, ) as (r, w, _): async with ClientSession(r, w) as s: await s.initialize() out = await s.call_tool("en_sentence_eval", { "ref_text": "I think therefore I am", "audio_url": "https://example.com/audio/sentence.mp3", }) print(out) asyncio.run(main())
更多客户端(Claude Code、Windsurf、Zed、Mastra、function-calling 模式)→文档 → 客户端
每个工具返回统一的顶层结构— 切换语种或粒度无需修改 schema。以"hello"为例:
{ "overall": 85, "accuracy": 82, "pron": 88, "integrity": 95, "fluency": { "overall": 78, "speed": 65, "pause": 2 }, "details": [ { "char": "hello", "score": 85, "phone": [ { "phoneme": "h", "score": 90, "dp_type": "normal" }, { "phoneme": "ɛ", "score": 82, "dp_type": "normal" }, { "phoneme": "l", "score": 88, "dp_type": "normal" }, { "phoneme": "oʊ", "score": 80, "dp_type": "normal" } ] } ] }
英文错误发音会包含phoneme_error: { expected, actual }。中文额外提供tone_ref/tone_detected及变调感知的dp_type判定。完整字段列表 →
内联音频:在工具调用中直接传入audio_url或audio_base64— 无需额外上传。支持格式:mp3 · wav · ogg · m4a · aac · pcm。
两种传输音频的方式 —返回结构一致,体验不同。Function-calling 备选地址:fc-global.cloud.chivox.com。
经验法则— 用Whisper知道说了什么;用驰声知道说得怎么样。两者可叠加使用。
将 JSON 直接传给任何对话模型,配上一句系统提示 —"你是一位温暖的发音教练,先诊断再练习。"— 就能得到真正的教学反馈。无需微调,无需音频理解,只需chat.completion。
为什么可行— LLM 从未"听到"音频。JSON 用模型已理解的字段命名了问题(dp_type: "mispron"、phoneme_error.actual、tone_refvstone_detected),因此原生chat.completion就能像真人教师一样诊断。
🎤输入:1 分钟学习者录音 →输出:温暖反馈 + 针对性练习,端到端 < 1.6 秒。
全球超过3000 万学习者在学习普通话 — 包括华裔传承语使用者和成人初学者 — 但很少有平台能在音素级别评测声调错误(mā / má / mǎ / mà)。驰声的中文引擎使用与中国普通话水平测试(PSC)相同的数据训练。
同一 MCP 端点提供考试级评分标准:英文支持IELTS · TOEFL · Cambridge YLE · K-12 朗读评测,中文对齐 PSC 评分。统一 JSON 结构,20+ 评分维度 — 只需更换ref_text和accent。
另外:流式 + 内联双模式 ·TLS 1.3全链路加密 · 评测后音频即删(JSON 保留 30 天)· 企业客户可私有部署 ·限制与隐私 →
实在的默认策略。注册即获600 次免费调用(30 天有效),全部 16 个工具解锁— 无功能限制,无需绑卡。需要更多时,按成功调用计费,阶梯费率— 用得越多,单价越低。
免费版 ≠ 阉割版。每个新账户获得600 次免费调用(30 天有效),完整 16 工具目录— 引擎、JSON、SLA 与付费版完全一致。试用到期或用完后,最低$10充值,享受阶梯优惠。失败调用不计费。
这是不是又一个 Whisper 封装?不是。Whisper 做语音转文字,驰声做发音评分。引擎基于考试评分样本训练,返回音素级details[].phone[]— 不是转录文本。大多数团队两者并用。
支持离线/端侧部署吗?托管 MCP 服务需要连接评分引擎。如需气隙部署,请联系我们 — 我们为企业客户提供私有化容器。
支持方言和口音吗?中文目标为标准普通话,支持变调感知的声调判定。英文通过工具参数支持 en-US、en-GB、en-AU 评分标准。
哪些 LLM 可以直接使用?任何支持 OpenAI 风格 function calling 的模型:GPT-4o / 5.x、Claude Sonnet / Opus、Gemini、DeepSeek、GLM、Kimi、豆包、Qwen。工具 schema 原样透传。
可以在浏览器中使用吗?快速演示可以,但生产环境请通过后端转发,确保 API Key 保存在服务端。隐私说明 →
1. 创建会话 → tools/call: create_stream_session ↓ 返回 ws_url 2. 连接 WebSocket → wss://{ws_url}/ws/audio/{session_id} ↓ 3. 推送音频帧 → 二进制帧(建议每帧 8KB) ↓ 4. 停止并获取结果 → 发送 {"cmd": "stop"},接收最终评分
The example code and documentation in this repository are licensed under theMIT License.
The Chivox Speech Evaluation MCP Service itself is a commercial product. Visit theChivox API Portalfor service access and pricing.
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Create crafted UI components inspired by the best 21st.dev design engineers.
Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server
An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .
MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent
ALAPI MCP Tools,Call hundreds of API interfaces via MCP
AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform
MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.
APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





