Детекторът на език винаги дава отговор, дори на кашляне. Оставете автоматичното определяне включено за чисто аудио или аудио с няколко езика, а езика посочете, когато на фона на шум или със силен акцент се говори един език.
Всяка транскрипция започва с въпрос, който читателят никога не вижда: на какъв език е това? Ако отговорът е грешен, останалата част от процеса работи усилено, за да създаде гладък, но безсмислен текст. Тази статия обяснява към какво се ослушва детекторът на езика, как се държи при аудио на живо и при файлове и кога е по-добре сами да посочите езика.
Детекторът на език не разбира какво се казва. Той анализира самия звук: набора от съгласни и гласни, как се разполага ударението в сричките, ритъма на фразите и кратките, често срещани думи, на които всеки език стъпва. Испанският има собствена система от гласни и собствен ритъм; нидерландският и немският споделят много, но се разделят по няколко звука. Няколко секунди ясна реч обикновено са достатъчни, за да ги различи.
Много разпознавачи правят това като страничен продукт от разпознаването на думите. Те определят езика от началото на аудиото, като вероятност за всеки език, който познават. От този дизайн следват две неща. Вероятностите винаги дават сума едно, затова няма отговор „без език“: тишина, кашляне или музикален акорд също получават език, често със самоуверен резултат. А решението се взема от началото, което е най-лошата извадка, която може да се избере. Много записи започват с поздрави, имена и географски названия, които носят много малко езикова информация: „Добро утро, Мария, добре дошли в Берлин“ е почти толкова немско, колкото и английско. Други започват с тишина или кашляне, а детектор, на когото се наложи да реши по тях, ще реши така или иначе – уверено и без никаква основа. Реалното аудио се държи по същия начин: румънска проповед, която започва с шум в стаята и „Bună dimineața“, лесно може да бъде чута като италианското „Buona domenica“ – с пълна увереност.
Цената на грешния отговор е по-висока, отколкото изглежда. Разпознавач, който декодира на грешен език, не сгрешава правописа; той пренаписва. „Защото Бог толкова обикна света“, декодирано като румънски, излиза като „Забравих да обичам света“. Румънското „mândria slujește“, декодирано като английски, излиза като „Pride serves“ – което е точен превод на изречение, за което никой не е искал превод. Думите са плавни и транскриптът не показва никакъв признак, че нещо не е наред, и точно това прави грешката скъпа.
Пет неща най-често подвеждат детекторите:
Кое от тях ви засяга зависи от това дали аудиото идва на живо, или вече е в файл.
При транскрипция на живо няма цял запис, който да се прегледа. Аудиото пристига докато се говори и транскриптът трябва да пристига заедно с него. Затова езикът се определя, докато говорителят говори, и се следва, ако той смени езика. Именно това означава бележката под превключвателя Spoken language, когато стартирате транскрипция на живо в таблото: езикът на говорителя се определя автоматично и той може да го смени по всяко време.
Смяната се потвърждава, преди да бъде приложена, така че един шумен участък не отвежда транскрипта към друг език. Слабото място е началото: ако първите думи са шумен поздрав, първият ред може да излезе на грешен език. Посочването на езика предотвратява това.
Файловете работят иначе, защото целият запис вече е налице.
Файлът е по-добър случай: не е нужно да се доверяваме на първите секунди. За файл езикът се определя от записа като цяло, така че шумен поздрав в началото не може да реши въпроса.
Езикът на файла все пак е работно предположение, а не окончателна присъда. Запис, който действително сменя езика по средата – например интервю, което във втората си половина преминава от английски към румънски – се следва, а не се насилва, а запис, който се редува между езици през цялото време, също се обработва.
Детектор, който решава веднъж и никога не се връща назад, е уверен на грешното място.
Нито един детектор не помага особено, когато целият запис е шумен. Автоматичното определяне е по подразбиране, защото в повечето случаи е точно и не ви струва нищо. За някои записи обаче трябва да посочите езика, а таблото казва кои са те: посочването на говоримия език подобрява точността при шумни записи и силни акценти.
Именно в тези случаи детекторът има най-малко с какво да работи. Шумът премахва сигналите, от които зависи детекторът; силен акцент ги измества към друг език; а близко сродната двойка предлага от самото начало малко сигнали. Говорител на английски със силен португалски акцент в ехтяща зала е трудно да се определи само по звука, и ако детекторът го определи грешно, транскриптът превръща английската реч в португалска, докато грешката продължава. Посочването на езика премахва въпроса, така че цялото усилие отива в думите.
Кратък списък за проверка:
Посочването на езика е настройка на транскрипцията, а не на вашия акаунт, така че можете да решавате за всеки запис поотделно. Всичко по-горе се свежда до една опция в API.
spokenLanguage означава определяне; session.update по време на потокВ API spokenLanguage е езиков код, например en; ако го пропуснете, езикът се определя автоматично. Той се появява в settings на транскрипция на файл или връзка и в опциите на сесия в реално време. Определянето и посочването обхващат едни и същи 100 езика. Превод на до 10 от тях е отделен избор и не зависи от това кой език е определен или посочен. Как преводът държи крак на речта е темата на Задръжката при превода на живо, обяснена.
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
Сесията в реално време приема същата опция при създаването си, а може да я променяте, докато аудиото тече. Текстов кадър session.update с нов spokenLanguage се прилага за речта от този момент нататък; ако го зададете на "" или "auto", сесията се връща към определяне на езика, а неподдържан код се игнорира. Изгледът със субтитри с бутон за език може да позволи на оператора да посочи езика в мига, в който види грешен първи ред, без да се прекарва връзката наново.
{ "type": "session.update", "spokenLanguage": "ro" }
Списъкът с кодовете и техните имена е на GET /v1/languages и не изисква ключ. Пълният поток в реално време – от създаването на сесия на вашия сървър до четенето на чернови и потвърждения – е описан в Транскрипция в реално време през WebSocket, а интерактивната справка е на {{api}}/docs. В таблото същият избор е превключвателят Spoken language, когато стартирате нова транскрипция, а ключовете за API се намират в Developers.