En språkdetektor ger alltid ett svar, även på en hostning. Låt detekteringen vara på för rent eller flerspråkigt ljud, och ange språket när ett enda språk talas över brus eller med en kraftig brytning.
Varje transkribering börjar med en fråga som läsaren aldrig ser: vilket språk är det här? Blir svaret fel arbetar resten av kedjan hårt för att producera flytande nonsens. Den här artikeln förklarar vad en språkdetektor lyssnar efter, hur detekteringen beter sig för liveljud och för filer, och när du är bättre hjälpt av att ange språket själv.
En språkdetektor förstår inte vad som sägs. Den tittar på ljudet självt: inventariet av konsonanter och vokaler, hur stavelser betonas, rytmen i fraserna och de korta, vanliga ord som alla språk lutar sig mot. Spanska har sin egen vokaluppsättning och rytm; holländska och tyska delar mycket men skiljer sig åt i ett fåtal ljud. Några sekunder tydligt tal räcker oftast för att skilja dem åt.
Många igenkännare gör detta som en bieffekt av att känna igen orden. De avgör språket utifrån början av ljudet, som en sannolikhet för varje språk de känner till. Två saker följer av den konstruktionen. Sannolikheterna summerar alltid till ett, så det finns inget svar av typen "inget språk": tystnad, en hostning eller en musikstinger får också ett språk, ofta med en säker poäng. Och beslutet fattas utifrån början, vilket är det sämsta underlaget man kan välja. Många inspelningar börjar med hälsningar, namn och platsnamn, som bär mycket lite språklig signal: "Good morning, Maria, welcome to Berlin" är nästan lika tyskt som engelskt. Andra börjar med tystnad eller en hostning, och en detektor som ska avgöra utifrån det kommer ändå att avgöra, med säkerhet, på ingenting alls. Även verkligt ljud gör så: en rumänsk predikan som börjar med rumsbrus och "Bună dimineața" kan mycket väl höras som italienska "Buona domenica", med fullständig visshet.
Kostnaden för ett fel svar är också värre än det låter. En igenkännare som avkodar fel språk stavar inte fel; den skriver om. "For God so loved the world", avkodat som rumänska, blev "Forgot to love the world". Den rumänska "mândria slujește", avkodad som engelska, blev "Pride serves", vilket är en korrekt översättning av en mening som ingen bett om att få översatt. Orden är flytande och transkriptet ger ingen indikation på att något är fel, vilket är det som gör felet dyrt.
Fem saker lurar detektorer oftast:
Vilket av dessa som biter dig beror på om ljudet kommer live eller redan ligger i en fil.
Vid en livetranskribering finns ingen hel inspelning att titta på. Ljudet kommer medan det talas, och transkriptet måste komma med det. Språket detekteras därför allt eftersom talaren pratar, och följs om talaren byter. Det är detta noten under omkopplaren Spoken language betyder när du startar en livetranskribering i dashboarden: talarens språk detekteras automatiskt, och talaren kan byta språk när som helst.
Ett byte bekräftas innan det tillämpas, så ett enda brusigt parti för inte transkriptet över till ett annat språk. Den svaga punkten är inledningen: om de första orden är en brusig hälsning kan första raden komma ut på fel språk. Att ange språket undviker det.
Filer fungerar annorlunda, eftersom hela inspelningen redan finns där.
En fil är ett bättre problem: det finns inget behov av att lita på de första sekunderna. För en fil avgörs språket utifrån hela inspelningen, så en brusig hälsning i början kan inte avgöra saken.
Filens språk är fortfarande ett arbetsantagande, inte ett slutgiltigt besked. En inspelning som verkligen byter språk mitt i, till exempel en intervju som går från engelska till rumänska i sin andra halva, följs i stället för att tvingas in i ett språk, och en som växlar mellan språk hela vägen hanteras också.
En detektor som avgör en gång och aldrig ser sig om är säker på fel ställe.
Ingen detektor hjälper särskilt mycket när hela inspelningen är brusig. Detektering är standardvalet eftersom den oftast har rätt och inte kostar dig något. För vissa inspelningar bör du dock ange språket, och dashboarden säger vilka: att ange det talade språket förbättrar träffsäkerheten på brusiga inspelningar och vid kraftig brytning.
Det är de fall där detekteringen har minst att arbeta med. Brus tar bort de signaler en detektor förlitar sig på; en kraftig brytning förskjuter dem mot ett annat språk; ett närbesläktat par ger från början få signaler. En engelsktalande med stark portugisisk brytning i en genljudande sal är svår att placera enbart utifrån ljudet, och om detektorn placerar fel förvandlas engelskt tal till portugisiska så länge missförståndet varar. Att ange språket tar bort frågan, så all ansträngning går till orden.
En kort checklista:
Att ange språket är en inställning för transkriberingen, inte för ditt konto, så du kan bestämma per inspelning. Allt ovan kokar ner till ett enda API-alternativ.
spokenLanguage betyder detektering; session.update mitt i strömmenI API:et är spokenLanguage en språkkod, till exempel en; utelämnar du den detekteras språket. Den finns i settings för en fil- eller länktranskribering och i alternativen för en realtidssession. Detektering och angivande omfattar samma 100 språk. Översättning till upp till 10 av dem är ett separat val, och det beror inte på vilket språk som detekterades eller angavs. Hur översättningen håller jämna steg med talet behandlas i Latens i livetranslation, förklarad.
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
En realtidssession tar samma alternativ när den skapas, och du kan ändra det medan ljud strömmar. En textram session.update med ett nytt spokenLanguage gäller för talet från och med då; sätter du det till "" eller "auto" går sessionen tillbaka till detektering, och en kod som inte stöds ignoreras. En undertextvy med en språkknapp kan låta operatören ange språket i samma ögonblick som den ser en felaktig första rad, utan att koppla om.
{ "type": "session.update", "spokenLanguage": "ro" }
Listan med koder, med namn, finns på GET /v1/languages, som inte kräver någon nyckel. Hela flödet i realtid, från att skapa en session på din server till att läsa utkast och bekräftade texter, finns i Realtidstranskribering över WebSocket, och den interaktiva referensen finns på {{api}}/docs. I dashboarden är samma val omkopplaren Spoken language när du startar en ny transkribering, och nycklar för API:et finns under Developers.