← Cloudflare Realtime / realtime / realtimekit / ai
Přepis
RealtimeKit nabízí dva režimy přepisu založené na Cloudflare Workers AI:
| Režim | Model | Doba zpracování | Případ použití |
|---|---|---|---|
| V reálném čase | Deepgram Nova-3 | Během schůzky | Živé titulky pro účastníky |
| Po schůzce | Whisper Large v3 Turbo | Po skončení schůzky | Soubory přepisu a webhooky |
RealtimeKit zpracovává zvukový stream každého účastníka samostatně. To pomáhá rozpoznat jednotlivé mluvčí ve výsledném přepisu.
Doporučujeme přejít na plán Workers Paid, abyste se vyhnuli limitům zpracování Workers AI v plánu Free. Více informací najdete v Fakturace a limity plánu Free.
Přepis v reálném čase
Přepis v reálném čase streamuje zvuk účastníků do Deepgram Nova-3 ve Workers AI a odesílá události přepisu účastníkům schůzky během schůzky.
Zapněte přepis v reálném čase
Přepis v reálném čase pro účastníky zapnete nastavením permissions.transcription_enabled: true v účastníkově předvolba. Umožňuje vám rozhodnout, čí zvuk se přepisuje. Můžete tak například přepisovat zvuk řečníka, aniž byste přepisovali zvuk publika.
Chcete-li aktualizovat existující předvolbu, použijte API pro aktualizaci předvolby:
curl -X PATCH "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/presets/$PRESET_ID" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"permissions": {
"transcription_enabled": true
}
}'Chcete-li vytvořit přednastavení, viz Referenční dokumentace API pro vytvoření předvolby.
RealtimeKit přepisuje zvuk pouze u účastníků, kteří se připojí s předvolbou, jež má permissions.transcription_enabled: true.
Během schůzky RealtimeKit streamuje aktualizace přepisu do klientského SDK. Pro přístup ke stávajícím přepisům z meeting.ai.transcripts nebo naslouchejte novým událostem přepisu pomocí meeting.ai.on("transcript", ...), přečtěte si Využívat přepisy v reálném čase.
Konfigurovat nastavení přepisu
Předvolba určuje, čí zvuk se přepisuje. Konfigurace schůzky určuje, jak RealtimeKit tento zvuk přepisuje. Použijte ai_config.transcription a nastavte mluvený jazyk, vylepšit rozpoznávání vlastních výrazů a řídit filtrování vulgarit pro konkrétní schůzku.
curl -X POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/meetings" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Weekly product review",
"ai_config": {
"transcription": {
"language": "en-US",
"keywords": ["RealtimeKit", "Cloudflare"],
"profanity_filter": false
}
}
}'| Možnost | Typ | Výchozí | Popis |
|---|---|---|---|
language |
string | en-US |
Kód jazyka pro přepis |
keywords |
string[] | [] |
Výrazy pro zlepšení rozpoznávání (jména, žargon) |
profanity_filter |
boolean | false |
Filtrování urážlivého jazyka |
Jazyky podporované pro přepis v reálném čase
Přepis v reálném čase pohání Deepgram Nova-3 ve Workers AI.
Nova-3 ve Workers AI podporuje pro přepis tyto jazyky:
| Jazyk | Kód(y) |
|---|---|
| Angličtina | en, en-US, en-AU, en-GB, en-IN, en-NZ |
| Španělština | es, es-419 |
| Francouzština | fr, fr-CA |
| Němčina | de, de-CH |
| Hindština | hi |
| Ruština | ru |
| Portugalština | pt, pt-BR, pt-PT |
| Japonština | ja |
| Italština | it |
| Nizozemština | nl |
Použijte multi pro automatickou vícejazyčnou detekci napříč všemi výše uvedenými jazyky.
Pokud není zadán žádný jazyk, model použije výchozí hodnotu en-US. Pro nejlepší přesnost výslovně nastavte jazykový kód odpovídající vašemu zvuku.
Využívat přepisy v reálném čase
Přepis v reálném čase odesílá do klientského SDK průběžné i finální aktualizace přepisu. Průběžné aktualizace použijte pro živé titulky, finální pak pro historii přepisu nebo uložený stav UI.
Client SDK
// Get transcript entries already received by the client.
const transcripts = meeting.ai.transcripts;
// Listen for transcript updates during the meeting.
meeting.ai.on("transcript", (transcript) => {
if (transcript.isPartialTranscript) {
updateLiveCaption(transcript.peerId, transcript.transcript);
return;
}
appendFinalTranscript(transcript);
});Payload přepisu
{
"id": "1a2b3c4d-5678-90ab-cdef-1234567890ab",
"name": "Alice",
"peerId": "4f5g6h7i-8j9k-0lmn-opqr-1234567890st",
"userId": "uvwxyz-1234-5678-90ab-cdefghijklmn",
"customParticipantId": "abc123xyz",
"transcript": "Hello everyone",
"isPartialTranscript": false,
"timestamp": 1716700000000
}| Pole | Popis |
|---|---|
id |
Jedinečné ID záznamu přepisu |
name |
Zobrazované jméno účastníka, který mluvil |
peerId |
ID peeru účastníka, který mluvil. Při opětovném připojení se změní. |
userId |
Trvalé ID účastníka |
customParticipantId |
Identifikátor účastníka nastavený při jeho přidání |
transcript |
Přepsaný text |
isPartialTranscript |
true pro průběžné aktualizace, false pro závěrečné aktualizace |
timestamp |
Časové razítko Unix epoch v milisekundách |
Přepis po schůzce
Přepis po schůzce vytvoří přepis po ukončení schůzky pomocí Whisper Large v3 Turbo ve Workers AI a doručuje jej prostřednictvím webhook nebo REST API. Aby bylo možné identifikovat řečníky, RealtimeKit zpracovává zvuk každého účastníka zvlášť před vytvořením finální přepis.
Zapněte přepis po schůzce
Přepis po skončení schůzky můžete zapnout už při jejím vytváření. Nastavte transcribe_on_end: true a vygenerovat tak přepis po skončení schůzky. Chcete-li vygenerovat také shrnutí automaticky poté, co je přepis k dispozici, nastavte summarize_on_end: true.
curl -X POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/meetings" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Weekly product review",
"transcribe_on_end": true,
"summarize_on_end": true,
"ai_config": {
"transcription": {
"language": "en"
}
}
}'Použijte ai_config.transcription.language a nastavit tak jazyk přepisu. Podporované hodnoty najdete v Jazyky podporované po schůzce. Pokud transcribe_on_end není nastaveno, RealtimeKit negeneruje přepis schůzky.
Jazyky podporované po schůzce
Přepis po schůzce podporuje Whisper Large v3 Turbo kódy jazyků. Vynechte ai_config.transcription.language a nechat tak Whisper rozpoznat mluvený jazyk.
Mezi běžné jazykové kódy patří:
| Jazyk | Kód | Jazyk | Kód | Jazyk | Kód |
|---|---|---|---|---|---|
| Angličtina | en |
Španělština | es |
Francouzština | fr |
| Němčina | de |
Hindština | hi |
Portugalština | pt |
| Japonština | ja |
Italština | it |
Nizozemština | nl |
| Ruština | ru |
Čínština | zh |
Kantonština | yue |
Další jazykové kódy po schůzce
| Jazyk | Kód |
|---|---|
| Afrikánština | af |
| Albánština | sq |
| Amharština | am |
| Arabština | ar |
| Ásámština | as |
| Ázerbájdžánština | az |
| Baškirština | ba |
| Baskičtina | eu |
| Běloruština | be |
| Bengálština | bn |
| Bosenština | bs |
| Bretonština | br |
| Bulharština | bg |
| Katalánština | ca |
| Chorvatština | hr |
| Čeština | cs |
| Dánština | da |
| Estonština | et |
| Faerština | fo |
| Finština | fi |
| Galicijština | gl |
| Gruzínština | ka |
| Řečtina | el |
| Gudžarátština | gu |
| Haitská kreolština | ht |
| Hauština | ha |
| Havajština | haw |
| Hebrejština | he |
| Maďarština | hu |
| Islandština | is |
| Indonéština | id |
| Jávština | jw |
| Kannadština | kn |
| Kazaština | kk |
| Khmerština | km |
| Korejština | ko |
| Laoština | lo |
| Latina | la |
| Lotyština | lv |
| Lingalština | ln |
| Litevština | lt |
| Lucemburština | lb |
| Makedonština | mk |
| Malgaština | mg |
| Malajština | ms |
| Malajálamština | ml |
| Maltština | mt |
| Maorština | mi |
| Maráthština | mr |
| mongolština | mn |
| Myanmar | my |
| nepálština | ne |
| norština | no |
| norština (nynorsk) | nn |
| okcitánština | oc |
| Paštština | ps |
| Perština | fa |
| Polish | pl |
| paňdžábština | pa |
| Rumunština | ro |
| Sanskrt | sa |
| Srbština | sr |
| Šonština | sn |
| Sindhština | sd |
| Sinhálština | si |
| Slovenština | sk |
| Slovinština | sl |
| Somálština | so |
| Sundánština | su |
| Svahilština | sw |
| Švédština | sv |
| Tagalština | tl |
| Tádžičtina | tg |
| Tamilština | ta |
| Tatarština | tt |
| Telugština | te |
| Thajština | th |
| Tibetština | bo |
| turkmenština | tk |
| turečtina | tr |
| Ukrajinština | uk |
| Urdština | ur |
| uzbečtina | uz |
| vietnamština | vi |
| Velština | cy |
| jidiš | yi |
| jorubština | yo |
Formáty výstupu
Přepisy po schůzce jsou k dispozici v několika formátech. Pro workflow aplikací použijte CSV nebo JSON, pro titulkové soubory použijte SRT nebo VTT.
| Formát | Případ použití |
|---|---|
| CSV | Tabulkové procesory a analýza dat |
| JSON | Programový přístup |
| SRT | Soubory titulků videa |
| VTT | Titulky webového videa (<track> element) |
Příklady
"1000","peer-123","user-456","cust-789","Alice","Hello everyone"
"3000","peer-234","user-567","cust-890","Bob","Hi Alice"Řádky CSV používají následující pořadí polí: čas začátku v milisekundách, peer ID, user ID, vlastní ID účastníka, jméno účastníka a text přepisu.
[
{
"startTime": 1000,
"endTime": 2500,
"sentence": "Hello everyone",
"peerData": {
"id": "peer-123",
"userId": "user-456",
"displayName": "Alice",
"cpi": "cust-789",
"joinedAt": "2024-08-07T10:15:29.000Z",
"leftAt": ""
}
}
]1
00:00:01,000 --> 00:00:02,500
Alice: Hello everyone
2
00:00:03,000 --> 00:00:04,500
Bob: Hi AliceVyužívat přepisy po schůzce
Jakmile RealtimeKit dokončí zpracování přepisu po schůzce, můžete URL adresu pro stažení přepisu získat pomocí webhooku, nebo ji načíst přes REST API. Webhooky použijte pro asynchronní backendové workflow, REST API pak tehdy, když potřebujete přepis načíst pro konkrétní relaci.
Webhook
Nakonfigurujte meeting.transcript událost v Webhooky RealtimeKit:
{
"event": "meeting.transcript",
"meeting": {
"id": "bbb8940e-1b97-402a-97d6-2708b7feca41",
"title": "Weekly sync",
"endedAt": "2026-06-03T10:30:00.000Z",
"createdAt": "2026-06-03T10:00:00.000Z",
"sessionId": "05e57591-d89e-45c9-ae44-08dc1eaad0e0",
"startedAt": "2026-06-03T10:00:00.000Z",
"status": "LIVE",
"organizedBy": {
"id": "c94c437b-592a-4a39-b9e2-47ef1451e43b",
"name": "Example organization"
}
},
"transcriptDownloadUrl": "https://example.com/transcript.csv",
"transcriptDownloadUrlExpiry": "2026-06-10T10:30:00.000Z"
}REST API
Viz Načtení úplného přepisu relace.
curl -X GET "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/sessions/$SESSION_ID/transcript" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Dostupnost přepisu
Přepisy jsou dostupné po dobu 7 dnů po skončení schůzky. Soubory přepisu stáhněte nebo zkopírujte před vypršením platnosti URL vrácené webhookem nebo REST API.
Fakturace a limity plánu Free
Výchozí přepis RealtimeKit nahrává zvukový track každého účastníka a zpracovává jej pomocí Workers AI. Používání Workers AI se účtuje na váš účet Cloudflare pomocí ceny audio modelů, které se odvíjí od zvukových minut účastníků, nikoli od délky schůzky.
V plánu Workers Free zahrnuje Workers AI 10,000 Neurons denně. Pokud chcete využívat více než 10,000 Neurons denně, přejděte na plán Workers Paid. Workers Paid zahrnuje stejných 10,000 bezplatných Neuronů denně, poté účtuje další využití za $0.011 za 1 000 Neurons.
Na plán Workers Paid můžete přejít v Cloudflare dashboard v části Správa účtu.
Přepis RealtimeKit využívá tyto sazby zvukových modelů Workers AI:
| Režim přepisu | Model Workers AI | Neurons za minutu zvuku |
|---|---|---|
| Po schůzce | @cf/openai/whisper-large-v3-turbo |
46.63 |
| V reálném čase | @cf/deepgram/nova-3 WebSocket |
836.36 |
Zpracování a ukládání dat
Přepis RealtimeKit je spravovaný proces přepisu. Je-li přepis zapnutý, RealtimeKit zpracovává zvuk účastníků pomocí Workers AI a ukládá výstupy přepisu v úložišti spravovaném službou RealtimeKit.
Pro přepis v reálném čase streamuje RealtimeKit zvuk účastníků, kteří mají přepis zapnutý, do Workers AI a během schůzky odesílá aktualizace přepisu účastníkům schůzky.
Pro přepis po skončení schůzky zpracovává RealtimeKit zvuk každého účastníka zvlášť, po skončení schůzky vytváří finální soubory přepisu a zpřístupňuje je prostřednictvím webhooku nebo REST API.