Continuous recording and word pronunciation proficiency (0–1)

Returns the original CEFR and fluency fields, metadata, validity check and billing behavior. cefr_score stays 0–5 and fluency_score stays 0–10, from fluency_cefr-v2-final. Top-level check controls CEFR usability and billing; insufficient_audio is free. For compatibility, numeric legacy estimates are present on invalid checks but must not be treated as valid grades. Additive proficiency.score and words[].score are 0–1 pronunciation estimates from continuous-pilot-v2; unavailable or unscorable continuous values are null. proficiency.continuous_check reports pronunciation validity independently, and continuous_metadata holds alignment-based speech duration, word count and whether a reference was supplied. Legacy speech_seconds remains VAD-based and transcript_used includes automatic transcripts. Supply transcript to skip ASR, or omit it for Resonance transcription. Existing account billing terms apply. V2 was evaluated on short English read speech; its scores are not converted to CEFR. Longer recordings use word-weighted window scores, not separately validated long-form ratings.

post/v1/audio/proficiency

Request

  • Base URL: https://speech-api.oruk.ai
  • URL: https://speech-api.oruk.ai/v1/audio/proficiency
  • Auth: HTTP bearer

Headers

X-Request-IDstring

Unique request identifier. Reuse returns 409 and never creates a second debit.

Response

Proficiency result and audio usage

idstring required
object'speech.result' required
task'transcription' | 'emotion' | 'style' | 'affect' | 'analysis' | 'proficiency' required
modelstring required
textstring nullable
tagged_textstring nullable

Model-specific annotated transcript, not XML or word-level affect alignment. Resonance analysis may append unpaired <|label|> tags after a segment to annotate that segment. Use the structured segment emotions/styles arrays and start/end times for timed labels.

languagestring nullable
durationnumber required
diarizedboolean

True when segments are speaker turns (diarize=true).

speakersstring[]

Speaker labels in order of first appearance; empty unless diarized.

Changes

No recorded changes to this operation across all 1 revision of this API.