Talaridentifiering
Den här guiden visar hur du märker upp vem som talar i realtidstranskriptioner med Realtime Speech to Text API.
Guide · Förutsätter att du har slutfört guiden för klientsides- eller serversides- streaming.
Översikt
Talaridentifiering tilldelar talar-ID:n till ord så att du kan skilja på vem som sa vad. När talaridentifiering är aktiverad innehåller partiella transkriptioner preliminära talaretiketter, och varje bekräftad transkription följs av en separat diarized_transcript-händelse. Talaretiketter kan ändras när mer ljud tas emot.
Aktivera talaridentifiering
Ange den booleska frågeparametern diarize=true när du öppnar en WebSocket-anslutning med model_id=scribe_v3_live. Talaridentifiering är som standard false.
Följande exempel på serversidan öppnar en anslutning och tar emot händelser. Installera websockets för Python, eller ws och utvecklingsberoendet @types/ws för TypeScript. Ange ELEVENLABS_API_KEY i serverns miljö; exemplen skickar den i xi-api-key-headern. Behåll den här nyckeln på servern, inte i webbläsarkod.
De här exemplen skickar inte ljud. Integrera dem med din ljudproducent från guiden för streaming på serversidan: skicka input_audio_chunk-meddelanden på samma anslutning medan du tar emot händelser. Exemplen väljer pcm_16000, så använd matchande ljud. I Python kör du uppgiften som skickar ljud samtidigt som mottagningsloopen; i TypeScript skickar du ljud efter att anslutningen har öppnats.
Hantera händelser
Partiella transkriptioner
När talaridentifiering är aktiverad innehåller varje partial_transcript preliminära words i samma ordformat som batchtranskribering. Varje ords speaker_id är speaker_0, speaker_1 och så vidare när en talare har identifierats, eller null medan det fortfarande är oklart.
Behandla dessa ord som preliminära: talar-ID:n och tidsstämplar kan ändras när mer ljud tillkommer. Ord som ännu inte har justerats saknar tidsstämplar (start och end är null eller saknas).
Bekräftade och talaridentifierade transkriptioner
Talaridentifiering fördröjer inte committed_transcript. När talaridentifiering är aktiverad lägger den här händelsen till det nollbaserade heltalet segment_index:
Varje bekräftelse följs av en separat diarized_transcript-händelse med matchande segment_index, text och words:
Ordet ovan visar bara texten och talaretiketten. Det fullständiga ordformatet använder samma fält för start, end, type, logprob och characters som batchtranskribering, tillsammans med speaker_id. En oidentifierad talare har ett null-talar-ID.
Talaridentifierade transkriptioner skickas i bekräftelseordning. Koppla dem till bekräftade transkriptioner med segment_index, i stället för text eller nästa mottagna händelse. En diarized_transcript skickas alltid för varje bekräftelse, även om talaridentifieringen misslyckas; i så fall är oidentifierade talar-ID:n null.
Sammanslagningar av talare
En speakers_merged-händelse innebär att två talar-ID:n hänvisar till samma person:
Ersätt varje tidigare användning av from_speaker_id med to_speaker_id i både partiella och talaridentifierade transkriptioner. Talar-ID:n återanvänds aldrig. Sammanslagningar kan kedjas, så tillämpa dem i mottagningsordning: om speaker_2 slås samman med speaker_1 och sedan speaker_1 slås samman med speaker_0, måste alla tidigare ord från båda ID:na märkas som speaker_0.
Anropa till exempel den här hanteraren för varje mottagen händelse. Här lagrar transcript_history varje partiell och talaridentifierad transkription som programmet behåller, inklusive tidigare partiella ögonblicksbilder. Varje sammanslagning uppdaterar alla lagrade ord direkt, så kedjade sammanslagningar uppdaterar också tidigare sammanslagna ord. Återge talaretiketter från den här uppdaterade lagringen; null-etiketter förblir null.
Begränsningar
- Talaridentifiering stöds endast av
scribe_v3_live. Andra modeller returnerar feletinvalid_requestmed meddelandet"The 'diarize' parameter is only supported by scribe_v3_live."och stänger sedan anslutningen. - Talaridentifiering kan inte kombineras med
filter_background_audio. Den här kombinationen returnerar feletinvalid_requestmed ett meddelande som innehåller"cannot be combined with filter_background_audio"och stänger sedan anslutningen. - Talaretiketter kan förbli oidentifierade (
null), och senarespeakers_merged-händelser kan ändra tidigare etiketter. Dessa sammanslagningshändelser skickas endast när talaridentifiering är aktiverad.