En sprogdetektor giver altid et svar, selv på en hoste. Lad registreringen være slået til ved ren eller blandet lyd, og angiv sproget, når ét sprog tales over støj eller med en kraftig accent.
Hver transskription starter med et spørgsmål, som læseren aldrig ser: hvilket sprog er det her? Tager man fejl, arbejder resten af pipelinen hårdt på at producere flydende nonsens. Denne artikel forklarer, hvad en sprogdetektor lytter efter, hvordan registreringen opfører sig for live-lyd og for filer, og hvornår du er bedre tjent med selv at angive sproget.
En sprogdetektor forstår ikke, hvad der bliver sagt. Den lytter til selve lyden: beholdningen af konsonanter og vokaler, hvordan stavelser betones, rytmen i sætningerne og de korte, hyppige ord, som alle sprog støtter sig til. Spansk har sit eget vokalsæt og sin egen rytme; hollandsk og tysk deler en hel del, men skilles ad på en håndfuld lyde. Nogle få sekunder tydelig tale er som regel nok til at skelne dem.
Mange talegenkendere gør dette som et biprodukt af at genkende ordene. De afgør sproget ud fra begyndelsen af lyden, som en sandsynlighed for hvert sprog, de kender. To ting følger af den konstruktion. Sandsynlighederne lægger altid op til én, så der findes ikke et svar som »intet sprog«: stilhed, en hoste eller et musikindslag får også et sprog, ofte med en sikker score på. Og afgørelsen træffes ud fra begyndelsen, hvilket er det dårligste udsnit, man kunne vælge. Mange optagelser åbner med hilsner, navne og stedsnavne, som bærer meget lidt sprogsignal: "Good morning, Maria, welcome to Berlin" er næsten lige så tysk som engelsk. Andre åbner med stilhed eller en hoste, og en detektor, der bliver bedt om at afgøre det, afgør det alligevel, med sikkerhed, på helt intet. Det sker også med rigtig lyd: en rumænsk prædiken, der åbner med rumlyd og "Bună dimineața", kan let høres som italiensk "Buona domenica", med fuldstændig sikkerhed.
Prisen for et forkert svar er også værre, end det lyder. En genkender, der afkoder på det forkerte sprog, stavefejler ikke; den omskriver. "For God so loved the world", afkodet som rumænsk, blev til "Forgot to love the world". Den rumænske "mândria slujește", afkodet som engelsk, blev til "Pride serves", hvilket er en nøjagtig oversættelse af en sætning, ingen havde bedt om at få oversat. Ordene er flydende, og transskriptionen viser intet tegn på, at noget er galt, og netop det gør fejlen dyr.
Fem ting narrer detektorer oftest:
Hvilke af disse der rammer dig, afhænger af, om lyden kommer live eller allerede ligger i en fil.
Ved en live-transskription findes der ingen hel optagelse at kigge på. Lyden kommer, mens der tales, og transskriptionen skal komme med den. Derfor registreres sproget, mens taleren taler, og følges, hvis de skifter. Det er det, noten under Spoken language-kontakten betyder, når du starter en live-transskription i Dashboardet: talerens sprog registreres automatisk, og de må skifte til et andet når som helst.
Et skift bekræftes, før det tages i brug, så ét støjende stykke ikke trækker transskriptionen over i et andet sprog. Det svage punkt er begyndelsen: hvis de første ord er en støjende hilsen, kan første linje komme ud på det forkerte sprog. Ved at angive sproget undgår du det.
Filer fungerer anderledes, fordi hele optagelsen allerede er der.
En fil er et lettere problem: der er ingen grund til at stole på de første sekunder. For en fil afgøres sproget ud fra hele optagelsen, så en støjende hilsen i starten kan ikke afgøre det.
Filens sprog er stadig en arbejdsantagelse, ikke en dom. En optagelse, der faktisk skifter sprog undervejs, som et interview, der går fra engelsk over i rumænsk i anden halvdel, bliver fulgt og ikke tvunget, og en, der veksler mellem sprog hele vejen igennem, håndteres også.
En detektor, der afgør det én gang og aldrig ser tilbage, er sikker på det forkerte sted.
Ingen detektor hjælper meget, når hele optagelsen er støjende. Registrering er standard, fordi den er rigtig det meste af tiden og ikke koster dig noget. For nogle optagelser bør du dog angive sproget, og Dashboardet siger, hvilke det er: at angive det talte sprog forbedrer nøjagtigheden på støjende optagelser og ved kraftige accenter.
Det er de tilfælde, hvor registreringen har mindst at arbejde med. Støj fjerner de signaler, en detektor er afhængig af; en kraftig accent flytter dem hen mod et andet sprog; et nært beslægtet par giver få signaler at starte med. En engelsktalende med en kraftig portugisisk accent i en hal med efterklang er svær at placere ud fra lyden alene, og hvis detektoren placerer dem forkert, omskriver transskriptionen engelsk tale til portugisisk, så længe fejlen varer. Når du angiver sproget, fjerner du spørgsmålet, så al kraften går til ordene.
En kort tjekliste:
Angivelse af sproget er en indstilling for transskriptionen, ikke for din konto, så du kan beslutte det pr. optagelse. Alt ovenfor koger ned til ét API-valg.
spokenLanguage udeladt betyder registrering; session.update midt i streamenI API'et er spokenLanguage en sprogkode som en; udelader du den, registreres sproget. Den optræder i settings for en fil- eller link-transskription og i indstillingerne for en realtime-session. Registrering og angivelse dækker de samme 100 sprog. Oversættelse til op til 10 af dem er et separat valg, og det afhænger ikke af, hvilket sprog der blev registreret eller angivet. Hvordan oversættelse holder trit med talen, er emnet i Live-oversættelsens latenstid, forklaret.
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
En realtime-session tager den samme indstilling, når den oprettes, og du kan ændre den, mens lyden flyder. En session.update-tekstramme med en ny spokenLanguage gælder for tale fra det øjeblik af; sætter du den til "" eller "auto", vender sessionen tilbage til registrering, og en ikke-understøttet kode ignoreres. En untertekstvisning med en sprogknap kan lade operatøren angive sproget i samme øjeblik, de ser en forkert første linje, uden at forbindelsen skal genoprettes.
{ "type": "session.update", "spokenLanguage": "ro" }
Listen over koder med deres navne findes på GET /v1/languages, som ikke kræver nøgle. Hele realtime-flowet, fra oprettelse af en session på din server til læsning af udkast og commits, står i Realtime-transskription over en WebSocket, og den interaktive reference findes på {{api}}/docs. I Dashboardet er det samme valg Spoken language-kontakten, når du starter en ny transskription, og nøgler til API'et ligger under Developers.