Update to word-level transcript messages on /transcribe
When wordLevel is enabled in the configuration of a /transcribe session, final transcripts now deliver all finalized word items together in a single message, with data as a list matching the transcript message envelope already used by /streams. Previously, each finalized word arrived as its own singular message.Interim previews, returned when interimResults is also enabled, remain segment level and now arrive as a one-element list carrying the in-progress segment.Sessions with wordLevel disabled (default) are unaffected and keep the unchanged singular data object per segment. If you consume word-level messages, update your client to handle data as a list. See word-level transcripts in the API reference and the new word-level transcripts guide for details.Spanish speech to text now rated as premier
An updated Spanish (es) model is now available across all speech to text endpoints. This language is now rated as Premier with performance improvement expected across all medical domains.Evaluations across five datasets show an average relative improvement (percent decrease) in word error rate (WER) of 28.4%.This update also makes spoken punctuation and formatting available for Spanish. Further details are available on the languages and transcribe pages.Updated German (de, de-CH) and French (fr, fr-CH) models now available
Raw model performance evaluations (i.e., before formatting and punctuation evaluation) were conducted using 10 datasets for German and 6 for French and followed the methods outlined in our May 2026 benchmark paper. This includes use of our public MedDictate and MedTerm datasets.Results include the following average relative improvement (percent change) in word error rate (WER) and medical term recall (MTR):-
German:
- WER: -18.75%
- MTR: 4.35%
-
French:
- WER: -10.46%
- MTR: 5.23%
Percent change = (new value - old value)/old value * 100Improvements are indicated by a reduction in WER (lower is better) and increase in MTR (higher is better)
Command updates during active connection now supported
Real-time speech to text now supports ability to update commands mid-session. Send acommands_update message to add, update, or remove commands. The server processes requests in order they are received and communicates to the client when command updates are available for recognition.Only commands can be updated mid-session. Other configuration parameters such as formatting, replacements, primaryLanguage, and keyterms cannot be changed without closing and re-establishing the WebSocket connection. See the full API specification for details.Maintenance
- Increase maximum session duration for
/transcribeand/streamswebsocket connections from 2-hours to 4-hours. - Increased validation requirements for
replacementsas 10-word, 100-character maximum forfindandreplacevalues.
Maintenance
- Separate handling of “hyphen” and “dash” in spoken punctuation:
- Hyphens do not add punctuation between words (
"hello-world") - Em-dash adds spaces between words (
"hello — world")
- Hyphens do not add punctuation between words (
- Expand French and German decimal number formatting so that both “point” and “comma” are recognized.
- Add support for German abbreviations “HWK”, “BWK”, “LWK”, and “SWK” in vertebrae formatting.
Updated Swiss German (dialectical) model now available
An updated dialectical Swiss German (gsw-CH) model is now available across all speech to text endpoints. This language is now rated as Premier with performance improvement expected across all medical domains. Further details are available on the languages page.Maintenance
- Expanded base tier languages available for audio file processing via
/transcriptsendpoint. All languages are now available consistently across all speech to text endpoints. See details on the languages page. - Improve handling of disfluency and initialisms (
fr,fr-CH)
Maintenance
- Update GET/transcripts response so that transcripts are ordered based on
created_attimestamp (descending). Query parameterdirectioncan also be added to define sort order as descending (desc) or ascending (asc)
Speech to text formatting service update Beta
Speech to text endpoints utilize a formatting service to properly output dates, numbers, units, measurements, and more. This service is undergoing an upgrade to broaden coverage for such use cases and improve contextual disambiguation in support of continued reliability of speech to text performance.A one month beta period will allow clients to test the new formatting model in comparison to current generally available functionality. No client action will be required to utilize the updated formatting service upon general availability.Use the following language codes to conduct beta testing:Clients should utilize the beta period to test behavior within their application and notify Corti - contact us directly or submit feedback - with concerns or issues. An update will be noted here and in the upcoming change log when a GA date is confirmed.
Word level transcript responses
New configuration parameterwordLevel (object) now available for all speech to text endpoints to enable word-level transcript response messages. When enabled, transcript responses will be individual words instead of multi-word phrase transcript segments.- Enable this for word level timestamps in transcript output.
- Only final transcripts return word level output; interim results are unaffected.
- Additional
wordLevelconfiguration options to be added in subsequent releases. - Full details available in api-reference for transcribe, streams, and transcripts.
Maintenance
- Updated multichannel audio validation to support a maximum of 8 audio channels. See audio formats for full details.
Maintenance
- Expanded support for formatting of
{number} x {number}patterns (e.g. “five times two hundred milligrams” -> “5 x 200 mg”). - Improve performance of French (
fr) spoken punctuation detection. - Swiss French (
fr-CH) medications output in title case. - Expanded support for number recognition in Swiss French (
fr-CH). - Add support for alternative phrasings for Dutch (
nl) spoken punctuation. - Apply fix for diarization to improve consistency of speaker separation.
- Apply fix for “noon” and “midnight” so they’re returned as text instead of formatted as times.
Tympany WER analysis tool now available as open source
Building with speech-to-text does not stop at transcription. You need to know where the model succeeds, where it fails, and whether each difference matters for the workflow you are building.Tympany is an open source, local-first web app for speech-to-text evaluation. Use it to create “Beyond WER” (BeWER) reports from reference and generated transcripts, review errors, recompute error rates after excluding differences that are not true model failures, and identify errors that need to be reported to Corti for ongoing STT improvement.See full details and gain access to the tool here.Language expansion and updates
- Expansion of
Basetier to add support for 27 new languages - Languages upgraded from
BasetoEnhancedtier - Spanish, Arabic - Expansion of
Enhancedtier to add support for new language - Finnish - Expansion of
Premiertier to add support for new language - English (AU)
Replacements and Keyterms now available on Streams and Transcripts endpoints
The features replacements and keyterms are now supported on all three STT endpoints -transcribe, streams, and transcripts.Additionally, some configuration parameters have been updated on the streams and create transcripts endpoints for improved consistency. No timeline is currently planned to remove support for the deprecated parameters. See details in upcoming changelog.Maintenance
- Ensure replacements correctly handle casing and punctuation
- Fix capitalization of first word in transcript (capitalize) and after colon and semicolon (lowercase)
- Update formatting option
locale:shortto use four-digit year (e.g., 2026) - Increase maximum audio file duration accepted for upload recordings from 60 to 120 minutes
Keyterm bias
New feature fortranscribe web socket endpoint now available - define keyterms the system should be aware of and biased towards to ensure proper nouns unknown by the STT model are recognized and improve recognition reliability for other general terms. See feature details here.Swiss French fr-CH now supported
Language code fr-CH is now supported for use of Swiss French speech to text.Beyond current French speech to text handling, this model has improved support for Swiss medications and returns punctuation without non-breaking spaces (as used in French (fr or fr-FR) documentation).The languages page has been updated, and detailed information for punctuation handling on text insertion is available here.Commands with wildcard variable
New dictation feature, wildcard variable commands now available. Unlikeenum command variables, wildcard variables provide the ability to recognize a command based on undefined, open-ended text. A literal trigger word, such as “select”, is required before defining a wildcard variable.See feature details with examples here and configuration in the API reference.Updated asynchronous method for audio file processing
The/transcripts endpoint provides batch audio file processing using a synchronous-to-asynchronous method, where requests process synchronously for 25 seconds before hitting timeout and continuing asynchronously. A new request parameter, async, is now available to force asynchronous processing. This method returns the 202 status response right away, instead of waiting the full timeout window, so that clients can poll status endpoint and get full transcript when it is completed.See more details about /transcripts here and the updated parameter in the api-reference.Replacement Rules
New dictation feature, replacement rules, now available. Define terms to “find” and “replace” in STT output using thereplacements configuration option in /transcribe requests. See details and examples here and API configuration here. Replacements configuration is limited to 1,000 items per connection.Bug fixes
- “D3” now correctly handled
- Updated measurement formatting so that “0°” is supported
Raw PCM audio now supported
Audio processing has been updated so that raw PCM audio can be sent over web socket secure (wss) audio streaming with/transcribe and /streams. When using raw PCM audio, audioFormat must be declared in configuration. See details here.Infrastructure update for /transcripts endpoint to improve speech-to-text performance for audio file processing
Infrastructure updates to improve performance of audio file processing:- Updates to batch sync-to-async audio file processing to ensure consistent latency (RTFx 100)
- Model updates to reduce risk of hallucinations while improving medical term recall (English, German, French, Danish)
- Ensure efficient GPU utilization, refine load balancing and partition management (enhance autoscaling of ASR services)
New /languages endpoint now available
New REST endpoint available for clients to programmatically retrieve speech to text languages available per endpoint. See GET/languages/.Audio Health Events
A new feature for real time audio streaming, audio health events are notifications from speech to text system when audio quality may be compromised or problematic. The feature can be enabled with boolean parameter intranscribe and streams configuration.The following two scenarios are supported in this initial release:- Speech Quality Issue Detected - triggered by background sounds, white noise, or compromised audio.
- Long Silence Detected - defined as 10s of continuous audio without any sound/noise.
audioEvents here.Command and formatting updates
- Added timeout to return formatted text on silence
- Added non-breaking space before French punctuation characters
- Added support for square meter (m²) and square centimeter (cm²) units
- Fixed handling of decimal number format so that negative numbers are supported
- Security hardening: Improved validation of user-supplied command phrase inputs to prevent malformed values from affecting processing
Transcript output formatting now supported on Streams endpoint
Formatting is now supported on thestreams endpoint, with server-defined default values applied automatically. At this time, API configuration of formatting options is not supported for streams as it is for transcribe endpoint.Improved diarization now available
Updates to Corti’s Speech to Text models and diarizer, in which reliability and precision for speaker separation and identification have been optimized, have been released.See details on this feature here and configuration recommendations forstreams and transcripts requests here.Next-generation speech recognition models and infrastructure
New and improved model architecture and infrastructure bring the following actions and benefits:STT models for the following languages have been updated on both
/transcribe and /streams endpoints:Beyond defining the desired language code in API requests, no client action is necessary to select a specific version of a model. Please contact us for support or further information.
Interim Results now available during real-time dictation for low latency transcript previews
Use theinterimResults configuration parameter in /transcribe real-time dictation requests to have transcript previews returned from the server at a faster rate than final transcripts.See full feature details here, parameter configuration details here, and availability by language here.Locale-based formatting for dates, times, and numbers
Dictation formatting can now apply proper styling based on local standards for dates, times, and numbers. Locale is determined based on theprimaryLanguage defined in the web socket configuration.See full formatting details per language here and parameter configuration details here.Note that legacy date parameter values are still supported by the API; no breaking changes were implemented.
Dictation formatting improvements
- Expand units handling
- Expand
- Improve vertebrae formatting: Support for both
letter numberandletter number letter numberpatterns (e.g., “L three” -> “L3” and “L three L four” -> “L3-L4”) - Improve TNM and cancer stage formatting: Support for
T number N number M numberandstage numberpatterns (e.g., “T two N one M one a” -> “T2 N1 M1a” and “stage two b” -> “Stage IIB”) - Improve percentage handling: Move handling from
spokenPunctuationtoformattingso that percent symbol is only returned when there is a number measurement (e.g., dictation, “What percent sure are you question mark eighty percent” -> “What percent sure are you? 80%”) - Expand handling of German dates: Years without spaces (e.g. “zweitausendsechsundswanzig” -> “2026”) and new pattern (e.g., include pattern “siebter fünfter neunzehn vierundachtzig” -> “07/05/1984”)
- Expand handling of German units: Units with -n ending (e.g., “Millilitern”)
- Add new default for ordinals,
numerals_above_nine: Ordinals one through nine are written out (first, second, third) and ten and above are abbreviated (10th, 11th, 12th)
Dictation formatting improvements
- Improved support for
en-GBregional spelling variations - Improved support for
de-CH,gsw-CHregional spelling variations - Remove extra whitespace observed with degree and percent symbols
- Updated handling of single digit numbers, now represented as numeral when followed by year/ month/ week/ hour/ day/ minute/ second(s)
- Updated handling of hyphenated numbers and age dictation
- Updated handling of “one twenty” (and similar number pattern) dictations
- Updated handling of Month-Year dictation
- Fix for an issue that occasionally caused both formatted and unformatted versions of transcript text to be emitted
Bug fixes:
- Update to French formatting for improved number handling
- Update to Danish formatting for liter abbreviation handling
- Bug fix for extra whitespace being returned with commands or punctuation
- Command service performance and reliability improvements
Improved handling of initialisms in German dictation
An updated version of the German (de) language model was released with improved handling of dictated initialisms: spoken letters, numbers, and abbreviations. Over 800 additional medical abbreviations were introduced to the system, with focused improvement on dental tooth exams, adding support for ICD-10 codes, and ability to have individual letters/numbers returned from the model.Audio input validation
Improved server-side validation of streamed audio - if audio does not meet requirements outlined here, then a400 Invalid Audio error will be returned.Addition of new web socket event: flush
Provide clients the ability to force clear the audio buffer without closing the connection. In response to a "type": "flush" message from the client, the server will return recognized text and/or commands and respond with "type": "flushed", and keep the web socket connection open.See more details on /transcribe here and /streams here.Update to Swiss German language codes
There are now two different language codes that may be used for Swiss German use cases:- Swiss German (language code
gsw-CH), where dialectical Swiss German is spoken (recommended for AI scribe use cases) - Swiss High German (language code
de-CH), where Swiss High German is spoken (recommended for dictation use cases)
Bug fixes:
- Fixed an issue that prevented
automaticPunctuationparameter from working as expected. Furthermore,spokenPunctuationandautomaticPunctuationare mutually exclusive: Only one of these parameters should be set totruein a given/transcribeconfiguration, and if both settings are present and set to true, thenspokenPunctuationwill take precedence. See more detail here.
Dictation now supported in Dutch and Norwegian
Norwegian (no) and Dutch (nl) are now available for use on the /transcribe endpoint for dictation use cases. As a result they have been moved to the enhanced language tier. Additionally, Hungarian (hu) medical terminology has been expanded and improved.See more information about supported functionality for dictation here and language tiers here.Feature limitation:
- Some of the recent
/transcriptsendpoint language model updates (de,en,en-GB,fr) have been rolled back so that performance of asynchronous audio file processing can be improved. Infrastructure updates are underway to improve model performance. - Speech-to-text accuracy from
/transcriptsasynchronous audio file processing may be degraded as compared to real-time audio processing via the/streamsand/transcribeAPIs, which are not impacted by this issue.
Improved transcoding support in speech-to-text APIs
Update to both streaming and asynchronous audio file processing so that transcoding is supported. Previously audio files were required to conform to 16-bit, 16kHz formatting. Now, assuming proper file types are used, any precision and sample rate are accepted. See more details here.Parameter deprecation:
- Definition of the parameter
modelNameis no longer required in/transcriptsAPI requests. The latest and greatest model available per language will be applied automatically. - If the argument is included in the request, then it will be ignored. If the configuration is otherwise valid, then the request will process as expected. See full specification here.
Feature limitation:
- The interim (preview) results feature of the
/transcribeAPI is not performing as expected. As a result, it is being disabled for most languages to prevent issues with speech-to-text latency and accuracy. - If the
interimResultsparameter is included in the request for a language that does not support this functionality it will be ignored and, so long as the request is otherwise valid, the configuration will be accepted.
New dictation functionality available: Formatting
New dictation functionality available: Formatting. Take control over how dates, time, units, and numbers should be transcribed in the streaming speech to text output.See detailed API specification here and documentation of all available formatting options here.Swedish (sv) Enhanced language model is now available for dictation (
/transcribe).Updated Norwegian (no) and Swedish (sv) Base language models are now available for ambient documentation (
/streams) and transcription (/transcripts) workflows.Danish (da), German (de), and French (fr) Enhanced language models now available for dictation (
/transcribe) workflows.Swiss German (de-CH) Enhanced language model now available for ambient documentation (
/streams) workflows.French (fr) Enhanced language model now available for ambient documentation (
/streams) workflows.Introducing a new tier system for defining functionality and performance of speech to text language models. Read more about it here.
Updated German (de) and Swiss German (de-CH) language models available.
Announcing the launch of Corti AI Platform. Read more about it here.The following languages are supported by Corti speech to text: English (en for US English, and en-GB for UK English), Danish (da), German (de), Swiss German (de-CH), French (fr), Swedish (sv), Spanish (es), Norwegian (nl), Dutch (no), Italian (it), and Portuguese (pt)