Speech AI - Pronunciation, STT & TTS

io.github.fasuizu-brPublished by GitHub account fasuizu-brv2.3.0Updated Oct 24, 2026

Pronunciation scoring, speech-to-text, and text-to-speech for language learning

VerifiedStreamable HTTPWeb executableMedia & DesignAI & ML

Overview

AI-generated overview

Remote speech AI server for English pronunciation scoring, speech-to-text transcription, and text-to-speech synthesis.

What you can do
Assess English pronunciation from audio, with overall, sentence, word and phoneme scores in IPA and ARPAbet, and list the supported phoneme inventory. Transcribe audio to text with word-level timestamps and confidence, including a multilingual Whisper mode with language detection and optional speaker diarization. Synthesize English speech from text and list the available voices with metadata. Check the health and readiness of the pronunciation, STT, Whisper and TTS services.
When to use it
Useful for language-learning or speech tooling where an assistant needs to score a learner's pronunciation, transcribe recordings, or generate spoken audio, without hosting speech models yourself.
Requirements
A remote MCP endpoint; no local runtime or package. The README states the current API requires an Authorization Bearer API key from a Brainiall account, and that the gateway URL in this listing has been retired. Audio is passed as base64 data.
Before you install
The README marks this listing's gateway as legacy and says not to use those URLs, so verify the current endpoint before connecting. The current API needs a Brainiall API key, which should never be committed or shared. Audio you submit is sent to a third-party service.

Installation

In SourceWeft

  1. Open Speech AI - Pronunciation, STT & TTS in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.fasuizu-br%2Fspeech-ai/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "speech-ai-pronunciation-stt-tts": {
      "type": "http",
      "url": "https://apim-ai-apis.azure-api.net/mcp/pronunciation/mcp"
    }
  }
}

README

Brainiall Speech AI examples — migration notice

[Current TTS health] [Current TTS repository]

This repository is legacy. The former apim-ai-apis.azure-api.net gateway and the old Speech AI MCP URLs documented in earlier revisions have been retired. Do not use those URLs. The other files in this repository are retained only as historical source and may no longer run.

Current supported surfaces

NeedCurrent surface
Text-to-speech MCP serverhttps://api.brainiall.com/mcp/tts/mcp
Text-to-speech REST endpointPOST https://api.brainiall.com/v1/tts/synthesize
TTS health checkhttps://api.brainiall.com/mcp/tts/health
TTS setup, OpenAPI and maintained examplesfasuizu-br/brainiall-tts-mcp
Brazilian Portuguese transcriptionTranscreve BR
Speech-to-text API overviewBrainiall Speech-to-Text
Account and API keyBrainiall app
Offline contract compatibility checkscompatibility-pack/

Authentication for the current API uses an Authorization: Bearer YOUR_BRAINIALL_API_KEY header. Never commit a real key.

For TTS examples for Claude, Cursor, VS Code, n8n, Postman and raw REST clients, use the maintained TTS repository linked above. It is the canonical source for current voices, prices and request schemas.

The small compatibility pack is different from the historical examples. It is an offline-only contract test for buffered TTS, generic diarized-STT review artifacts, a synthetic diarization canary and local-by-default usage planning. It performs no API call during tests, contains no key, copies no third-party source, and does not claim streaming, cancellation, OpenAI drop-in compatibility, completed third-party integration or billing. Read its kill gates before reusing it.

Why this notice exists

External directories and search engines may still link to this repository. This notice prevents an old listing from sending developers to endpoints that no longer work and points them to the maintained production surfaces.

License

MIT — Brainiall

C112 — hosted STT contract fixture

The Whisper-WebUI OpenAI-compatible fixture is a provider-neutral, synthetic request/response example for maintainers evaluating an external speech-to-text path. It does not claim that Whisper-WebUI has adopted the contract, and it never includes a key or private audio.

Source: README.md at commit eab44aa

Tools

10

assess_pronunciation

Assess Pronunciation

Assess English pronunciation quality from audio. Scores pronunciation at four levels: overall, sentence, word, and phoneme. Each score is 0-100. Phonemes are returned in both IPA and ARPAbet notation. Sub-300ms inference latency. Args: audio_base64: Base64-encoded audio data. Supports WAV, MP3, OGG, and WebM formats. text: The reference English text that the speaker was expected to read aloud. audio_format: Audio format hint — one of 'wav', 'mp3', 'ogg', 'webm'. Defaults to 'wav'. Returns: dict with keys: - overallScore (int 0-100): Overall pronunciation quality - sentenceScore (int 0-100): Sentence-level fluency and accuracy - words (list): Per-word scores, each containing: - word (str): The word - score (int 0-100): Word pronunciation score - phonemes (list): Per-phoneme scores with IPA/ARPAbet notation - decodedTranscript (str): What the model heard (ASR transcript) - transcript (str): Reference text - confidence (float 0-1): Scoring confidence - warnings (list[str]): Quality warnings if any - audioQuality (dict): Audio metrics (SNR, peak/RMS dB, etc.)

Parameterstextrequiredaudio_base64requiredaudio_format

check_pronunciation_service

Check Pronunciation Service

Check if the pronunciation assessment service is healthy and ready. Returns: dict with keys: - status (str): 'healthy' or error state - modelLoaded (bool): Whether the scoring model is loaded - version (str): API version

Takes no parameters.

get_phoneme_inventory

Get Phoneme Inventory

Get the full phoneme inventory supported by the pronunciation scorer. Returns a list of all English phonemes the engine can assess, including ARPAbet symbol, IPA equivalent, example word, and phoneme category (vowel, consonant, diphthong). Returns: list of dicts, each with keys: - arpabet (str): ARPAbet symbol (e.g. 'AA', 'TH') - ipa (str): IPA notation - example (str): Example word containing the phoneme - category (str): vowel, consonant, or diphthong

Takes no parameters.

transcribe_audio

Transcribe Audio

Transcribe audio to text with word-level timestamps. Converts spoken English audio into text with optional word-level timestamps and per-word confidence scores. Args: audio_base64: Base64-encoded audio data (WAV, MP3, OGG, FLAC, WebM). audio_format: Audio format hint. Auto-detected from magic bytes if omitted. include_timestamps: Whether to include word-level timing (default: true). Returns: dict with keys: - text (str): Full decoded transcript - words (list): Per-word results with timestamps, each containing: - word (str): The transcribed word - start (float): Start time in seconds - end (float): End time in seconds - confidence (float 0-1): Word-level confidence - audioDurationMs (int): Audio duration in milliseconds - metadata (dict): Processing time, audio length, model version - audioQuality (dict): Audio metrics (SNR, peak/RMS dB, etc.)

Parametersaudio_base64requiredaudio_formatinclude_timestamps

check_stt_service

Check STT Service

Check if the speech-to-text service is healthy and ready. Returns: dict with keys: - status (str): 'healthy' or error state - modelLoaded (bool): Whether the STT model is loaded - version (str): API version

Takes no parameters.

synthesize_speech

Synthesize Speech

Generate natural speech audio from English text. Produces high-quality speech with 12 English voices. Returns base64-encoded WAV audio (16-bit PCM, 24kHz mono) along with metadata. Available voices: - af_heart (default), af_bella, af_nicole, af_sarah, af_sky (American female) - am_adam, am_michael (American male) - bf_emma, bf_isabella (British female) - bm_george, bm_lewis, bm_daniel (British male) Args: text: English text to synthesize (1-5000 characters). voice: Voice ID. See list above. Defaults to 'af_heart'. speed: Speed multiplier from 0.5 to 2.0 (default: 1.0). Returns: dict with keys: - audio_base64 (str): Base64-encoded WAV audio (16-bit PCM, 24kHz) - duration_ms (str): Audio duration in milliseconds - voice (str): Voice ID used - text_length (str): Input text character count - processing_ms (str): Synthesis time in milliseconds

Parameterstextrequiredspeedvoice

list_tts_voices

List TTS Voices

List all available text-to-speech voices with metadata. Returns: dict with keys: - voices (list): Available voices, each with id, name, gender, accent, grade - defaultVoice (str): Default voice ID

Takes no parameters.

check_tts_service

Check TTS Service

Check if the text-to-speech service is healthy and ready. Returns: dict with keys: - status (str): 'healthy' or error state - modelLoaded (bool): Whether the TTS model is loaded - version (str): API version

Takes no parameters.

transcribe_audio_pro

Transcribe Audio Pro (Whisper)

Transcribe audio with Whisper Large V3 Turbo — multilingual STT. Supports 99 languages with automatic language detection, word-level timestamps, per-word confidence scores, and optional speaker diarization (identifies who spoke each word). Best-in-class WER (~2%). Args: audio_base64: Base64-encoded audio (WAV, MP3, OGG, FLAC, WebM). language: Language code. Auto-detected if omitted. Supports 99 languages. diarize: Enable speaker diarization (default: false). When true, each word includes a speaker label (e.g. SPEAKER_00, SPEAKER_01). Returns: dict with keys: - text (str): Full decoded transcript - words (list): Per-word results with timestamps, each containing: - word (str), start (float), end (float), confidence (float 0-1) - speaker (str|null): Speaker label when diarize=true - speakers (dict|null): Speaker info with count and labels - audioDurationMs (int): Audio duration in milliseconds - metadata (dict): Processing time, language, languageProbability - audioQuality (dict): Audio metrics (SNR, peak/RMS dB, etc.)

Parametersdiarizelanguageaudio_base64required

check_whisper_service

Check Whisper Service

Check if the Whisper STT Pro service is healthy and ready. Returns: dict with keys: - status (str): 'healthy' or error state - modelLoaded (bool): Whether the Whisper model is loaded - diarizeLoaded (bool): Whether the diarization pipeline is loaded - version (str): API version - modelName (str): Whisper model name (e.g. 'large-v3-turbo')

Takes no parameters.

Version history

1
  1. v2.3.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts