For the complete documentation index, see llms.txt. This page is also available as Markdown.

Score Speech

This features requires a Premium Subscription Run in Postman: Score Speech

The Score Speech API scores spontaneous, open-ended speech. Unlike Score Text — which scores a known, read-aloud script — Score Speech has no reference text: it transcribes what the speaker actually said and scores it for pronunciation, fluency, grammar, vocabulary, and coherence on the IELTS, PTE, Speechace, TOEIC, and CEFR scales. It can also check whether the answer is relevant to a prompt, and detect the language the speaker used.

For read-aloud scripted text use Score Text; for a single word, letter, or non-word use Score Word.

Scoring modes

Capability
Turn it on with
What it adds to the response

Language scoring

(default — always on)

The transcript, plus pronunciation, fluency, grammar, vocabulary, and coherence subscores on all five scales.

Detailed feedback

include_ielts_feedback=1

grammar, vocab, and coherence nodes with sub-metrics, errors, and feedback messages.

Relevance

relevance_context="<prompt>"

speech_score.relevance.classTRUE or FALSE.

Language detection

detect_dialect=1 (warn) or enforce_dialect=1 (error)

detected_dialect.lang_id, or a hard error when the spoken language differs from the scoring dialect.

Request Format

The endpoint you use depends on the region of your subscription. For example, for US West the endpoint is https://api.speechace.co.

POST https://api.speechace.co/api/scoring/speech/v9/json

Query Parameters

Parameter
Type
Description

key

String

API key issued by Speechace.

dialect

String

This is the dialect in which the speaker will be assessed. Supported values are: en-us, en-gb, fr-fr, fr-ca, es-es, es-mx

user_id

String

Optional: A unique anonymized identifier (generated by your applications) for the end-user who spoke the audio.

Request Body

Parameter
Type
Description

user_audio_file

File

file with user audio (wav, mp3, m4a, webm, ogg, aiff)

question_info

String

Optional flag: A unique identifier (generated by your application) for the activity or question this user audio is answering.

include_ielts_feedback

String

1 Optional: Includes detailed feedback metrics for Grammar, Vocab, Coherence.

relevance_context

String

Optional: Question Prompt text provided to the user. When this parameter is passed, the relevance of the user audio transcript is evaluated given the relevance_context and a resulting relevance class is returned in .speech_score.relevance.class

pronunciation_score_mode

String

Optional field: Possible values -

  • default: will only penalize pronunciation errors which affect word intelligibility.

  • strict: will penalize prononciation errors even those which do not affect intelligibility resulting in generally lower pronunciation scores.

detect_dialect

String

Optional field: Possible values - 0 | 1

1: will apply language detection and warn if the majority of the response language is different from the intended scoring dialect.

enforce_dialect

String

Optional field: Possible values - 0 | 1

1: will apply language detection and error if the majority of the response language is different from the intended scoring dialect.

Setting enforce_dialect=1 automatically sets detect_dialect=1.

Request Examples

Example
Request Body Parameters
When to use

A. Language scoring

user_audio_file=answer.wav include_ielts_feedback="1"

Score a spontaneous answer for pronunciation, fluency, grammar, vocabulary, and coherence with detailed feedback.

B. Relevance

user_audio_file=answer.wav relevance_context="Describe how travel has changed over time and why."

Also check the answer is on-topic for the question or prompt.

C. Language detection

user_audio_file=answer.wav detect_dialect="1" (or enforce_dialect="1")

Flag — or reject — an answer spoken in a different language than the scoring dialect.

Response Examples

Response fields

Overall language scores

The API transcribes the audio and rates it on five rubrics, each with an overall score and subscores for pronunciation, fluency, grammar, vocabulary, and coherence:

  • speechace_score — 0 to 100

  • ielts_score — 0 to 9.0

  • pte_score — 10 to 90

  • cefr_score — A0 to C2

  • toeic_score — 0 to 200

See the scoring rubrics guide to interpret them. Pronunciation and fluency fields are the same as in Score Text.

Grammar feedback

Returned in the grammar node when include_ielts_feedback=1. Each sub-metric has a score (1–10), a level (low / mid / high), and — when the score is low — a message explaining how to improve.

Parameter
Description

grammar.overall_metrics.length

The sufficiency of the response length in words to demonstrate the necessary grammatical range.

grammar.overall_metrics.lexical_diversity

The degree of variation in syntactic structures such as diversity in verbs, adjectives and adverbial modifiers.

grammar.overall_metrics.grammatical_accuracy

The degree of grammatical inaccuracies in the response. A list of grammatical errors with suggested replacements is returned in the grammar.errors node when this index is low.

grammar.overall_metrics.grammatical_range

The degree of grammatical range demonstrated in the response. This score is further broken down into 4 additional sub-indices:

  • noun_phrase_variation

  • noun_phrase_complexity

  • verb_construction_variation

  • adverb_modifier_variation

grammar.overall_metrics.grammatical_range.noun_phrase_variation

The degree of variation in structure of noun phrases such as the number and types of modifiers used in the response.

grammar.overall_metrics.grammatical_range.noun_phrase_complexity

The degree of complexity of noun phrases such as the richness of adjectives, relative clauses, prepositional phrases, nonfinite elements, determiners, and demonstratives used in the response.

grammar.overall.metrics.grammatical_range.verb_construction_variation

The degree of variation in verbal structures such as the number and types of verb structural elements used in the response.

grammar.overall.metrics.grammatical_range.adverb_modifier_variation

The degree of variation in types of adverbs or adverb phrases to modify clauses, verbs, and adjectives used in the response.

The grammar.errors node lists individual grammatical errors:

key
Description

category

The type of error such as; STYLE, GRAMMAR, COLLOCATION, CONFUSED_WORDS

message

A descriptive message of the error. The message may refer to words within the evaluated text and include suggested replacements within the ... markup tags.

span

The [begin, end] indices of the matched text in characters.

matched_text

The matched text where the error was found.

replacements

An array of zero or more suggested replacements where applicable.

Vocabulary feedback

Returned in the vocab node when include_ielts_feedback=1.

Parameter
Description

vocab.overall_metrics.lexical_diversity

The degree of word diversity in the response.

vocab.overall_metrics.word_sophistication

The degree of use of advanced, less common vocabulary in the response.

vocab.overall_metrics.word_specificity

The degree of use of specific (less general) verbs, nouns, and adjectives which are specific to the meaning being conveyed.

vocab.overall_metrics.academic_language_use

The degree of use of academic language in the response.

vocab.overall_metrics.collocation_commonality

The degree of use of advanced word combinations.

vocab.overall_metrics.idiomaticity

The degree of use of idiomatic language.

Coherence feedback

Returned in the coherence node when include_ielts_feedback=1.

Parameter
Description

coherence.overall_metrics.lexical_density

The degree of use of content words within the response.

coherence.overall_metrics.basic_connectives

The degree and variety of basic connectives within the response. A list of most overused basic connectives is included.

coherence.overall_metrics.causal_connectives

The degree and variety of causal connectives within the response. A list of most overused causal connectives is included.

coherence.overall_metrics.negative_connectives

The degree and variety of negative connectives within the response. A list of most used negative connectives is included.

coherence.overall_metrics.pronoun_density

The degree of use of pronouns within the response.

coherence.overall_metrics.adverb_diversity

The degree and variety of adverbs within the response. A list of most overused adverbs is included.

coherence.overall_metrics.verb_diversity

The degree and variety of verbs within the response. A list of most overused verbs is included.

Relevance

Pass relevance_context with the question or topic and the API judges whether the transcript is on-topic, returning the result in speech_score.relevance.class:

  • TRUE — the response is relevant to the context.

  • FALSE — the response is not relevant; an error message is also returned.

  • Too similar — if the response merely repeats the prompt, an error indicates it is too similar to the relevance_context.

Field
Description

transcript

The speech-to-text transcript of what the user has said.

speechace_score

An overall score on a scale of 0 to 100, in addition to subscores for: Fluency, Pronunciation, Grammar, Vocabulary, Coherence.

ielts_score

An overall score on an IELTS scale of 0 to 9.0, in addition to subscores for: Fluency, Pronunciation, Grammar, Vocabulary, Coherence.

pte_score

An overall score on a PTE scale of 10 to 90, in addition to subscores for: Fluency, Pronunciation, Grammar, Vocabulary, Coherence.

cefr_score

An overall score on CEFR scale of A0 to C2, in addition to subscores for: Fluency, Pronunciation, Grammar, Vocabulary, Coherence.

toeic_score

An overall score on an TOEIC scale of 0 to 200, in addition to subscores for: Fluency, Pronunciation, Grammar, Vocabulary, Coherence.

relevance.class

TRUE or FALSE indicating whether the response was relevant given the relevance_context passed as input to the API.

Language detection

Language detection compares the spoken language against the scoring dialect:

  • detect_dialect=1lenient. The score is unaffected; the detected language is returned under detected_dialect.lang_id (as in the C. Language detection example above).

  • enforce_dialect=1strict. If the detected language differs from the dialect, the API returns a hard error so you can zero the score. Setting enforce_dialect=1 implies detect_dialect=1.

Enforced-mismatch error:

Last updated