Speech recognition for the complexity of healthcare
Fast, accurate, and ready to handle clinical conversations. Power any voice-based healthcare workflow with the most accurate medical ASR accessible via API.
Capture clinicial conversations
curl --request POST \
--url https://api.{environment}.corti.app/v2/interactions/{id}/transcripts/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Tenant-Name: <tenant-name>' \
--data '{
"recordingId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"primaryLanguage": "en",
"isDictation": true,
"isMultichannel": true,
"diarize": true,
"participants": [
{
"channel": 123,
"role": "doctor"
}
],
"modelName": "base"
}'
await client.transcripts.create("f47ac10b-58cc-4372-a567-0e02b2c3d479", {
recordingId: "f47ac10b-58cc-4372-a567-0e02b2c3d479",
primaryLanguage: "en",
modelName: "base"
});
import requests
url = "https://api.{environment}.corti.app/v2/interactions/{id}/transcripts/"
payload = {
"recordingId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"primaryLanguage": "en",
"isDictation": True,
"isMultichannel": True,
"diarize": True,
"participants": [
{
"channel": 123,
"role": "doctor"
}
],
"modelName": "base"
}
headers = {
"Tenant-Name": "<tenant-name>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.{environment}.corti.app/v2/interactions/{id}/transcripts/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'recordingId' => 'f47ac10b-58cc-4372-a567-0e02b2c3d479',
'primaryLanguage' => 'en',
'isDictation' => null,
'isMultichannel' => null,
'diarize' => null,
'participants' => [
[
'channel' => 123,
'role' => 'doctor'
]
],
'modelName' => 'base'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Tenant-Name: <tenant-name>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.{environment}.corti.app/v2/interactions/{id}/transcripts/"
payload := strings.NewReader("{\n \"recordingId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"primaryLanguage\": \"en\",\n \"isDictation\": true,\n \"isMultichannel\": true,\n \"diarize\": true,\n \"participants\": [\n {\n \"channel\": 123,\n \"role\": \"doctor\"\n }\n ],\n \"modelName\": \"base\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Tenant-Name", "<tenant-name>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
HttpResponse<String> response = Unirest.post("https://api.{environment}.corti.app/v2/interactions/{id}/transcripts/")
.header("Tenant-Name", "<tenant-name>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"recordingId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"primaryLanguage\": \"en\",\n \"isDictation\": true,\n \"isMultichannel\": true,\n \"diarize\": true,\n \"participants\": [\n {\n \"channel\": 123,\n \"role\": \"doctor\"\n }\n ],\n \"modelName\": \"base\"\n}")
.asString();
import { CortiClient, CortiEnvironment } from "@corti/sdk";
const cortiClient = new CortiClient({
tenantName: "YOUR_TENANT_NAME",
environment: CortiEnvironment.BetaEu,
auth: {
accessToken: "YOUR_ACCESS_TOKEN"
},
});
const transcribeSocket = await cortiClient.transcribe.connect();
Unmatched medical domain accuracy
Our speech recognition models are trained on one of the industry’s largest medical lexicons, covering over 150,000 terms. From drug names to anatomical terminology and specialty-specific language, Corti is optimized for precise recognition in real-world clinical settings.
By focusing exclusively on healthcare, our models achieve higher recall and accuracy than general-purpose systems, ensuring that every diagnosis, treatment, and detail is captured reliably, whether in general practice or highly specialized care.
Medical terms in our comprehensive training lexicon
Faster than general purpose models
Speech recognition capabilities
Diarization
Separate speakers automatically, making each voice clear and easy to identify in transcripts.
Multi-channel
Capture audio from each channel independently to produce cleaner and more accurate transcripts.
Punctuation
Improve readability with automatic punctuation added consistently across the transcript.
Voice commands
Allow users to speak or type short, predefined commands instead of navigating menus or typing manually.
Formatting (beta)
Standardise spoken dates, times, and numbers into precise, structured medical notation.
Vocabulary (beta)
Expand medical term recognition to improve accuracy for specialised domains further.
Power any voice-based healthcare workflow
Stream live audio in real time with low latency or process recordings asynchronously, perfect for dictation, patient conversations, or high-volume documentation.

Trained on real-world clinical conversations, Corti’s models handle medical terminology, abbreviations, and multilingual input with exceptional accuracy — straight out of the box. You get accurate transcripts straight out of the box without endless tuning or manual cleanup.

Separate by speaker, capture multichannel input, and apply spoken or automatic punctuation. Corti turns every word, pause, and correction into structured notes that are immediately ready for downstream use.

Define commands like “new line” or domain-specific phrases that trigger formatting or actions in transcription.Clinicians can dictate naturally while Corti handles structure, keeping attention on the patient instead of the screen.


“By adding Corti’s API directly into our platform, we’re giving customers the latest capabilities without forcing them to learn new systems or abandon familiar workflows.”
Now see what you can build
Real-time dictation
Let physicians speak naturally while Corti transcribes notes, referrals, and reports instantly — with voice commands.
Ambient documentation
Transcribe patient conversations live with speaker attribution and fact extraction, so you can generate clean clinical notes.
Post-call transcription
Convert recorded consultations, tele-health sessions, or contact center calls into accurate transcripts with a single API.
Voice-powered features
Drive smart tools like symptom checkers, digital intake forms, or clinical assistants — all with real-time speech input.