Skip to main content
Glama

Assess Pronunciation

assess_pronunciation
Read-onlyIdempotent

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.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYesThe reference English text that the speaker was expected to read aloud.
audio_base64YesBase64-encoded audio data. Supports WAV, MP3, OGG, and WebM formats.
audio_formatNoAudio format hint — one of 'wav', 'mp3', 'ogg', 'webm'.wav

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful beyond-annotation behavior: sub-300ms latency, detailed output structure including decodedTranscript (what the model heard), warnings, audioQuality, and phoneme representations. These help the agent anticipate the tool's behavior and result shape without contradicting any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured into purpose, args, and returns, and each piece is action-oriented. It is longer than minimal, but the detailed return breakdown earns its place because there is no output schema. Slight redundancy with the input schema is minor, and the purpose statement is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating full return keys and their meaning, including per-word/phoneme structure and confidence. It also covers input arguments, formats, and latency. It does not explicitly discuss error cases or comparisons to other tools, but for this tool's complexity it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description's Args section largely mirrors the schema content (audio_base64, text, audio_format, formats, default). It adds no new semantic meaning beyond the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb and resource: 'Assess English pronunciation quality from audio.' It further explains the four scoring levels and output details, which differentiates it from transcription and synthesis siblings like transcribe_audio, transcribe_audio_pro, and synthesize_speech. It does not explicitly name or contrast with sibling tools, but the purpose is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: if you need pronunciation quality scores from audio, use this tool. However, it provides no explicit 'when to use versus alternatives' guidance, such as pointing to transcribe_audio for transcription or check_pronunciation_service for service health. It relies on the agent infering appropriate use from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.8/5.0
Disambiguation4/5

Most tools map to clearly distinct actions, but transcribe_audio and transcribe_audio_pro are near-duplicates and the four check_*_service tools require careful reading. The detailed descriptions make the distinctions recoverable, so confusion should be rare.

Naming Consistency4/5

The set overwhelmingly follows a snake_case verb_* pattern, and the voice_id_* family is internally consistent. Minor deviations like get_phoneme_inventory vs list_tts_voices and the _pro suffix on transcribe_audio_pro keep it from being perfect.

Tool Count4/5

Fourteen tools is within a reasonable range, but the server bundles pronunciation, STT, TTS, voice ID, and four health checks, making it feel broader than the 'Pronunciation' name suggests. A few health checks could be consolidated, but nothing is excessive.

Completeness3/5

Core pronunciation, transcription, and synthesis workflows are present, but the voice ID portion has create/list/verify/identify with no way to delete or unenroll a speaker. That is a notable lifecycle gap in an otherwise fairly complete speech toolkit.

Resources