Дэтэктар мовы заўсёды дае адказ, нават на кашаль. Пакідайце вызначэнне ўключаным для чыстага або змешанага аўдыё, а мову называйце, калі ў шуме або з моцным акцэнтам гучыць адна мова.
Кожнае транскрыбаванне пачынаецца з пытання, якое чытач не бачыць: якая гэта мова? Калі адказ няверны, астатні канвеер будзе старанна вырабляць бегла напісаную бессэнсоўшчыну. Гэты артыкул тлумачыць, на што глядзіць дэтэктар мовы, як ён паводзіць сябе з жывым аўдыё і з файламі і калі лепш назваць мову самастойна.
Дэтэктар мовы не разумее, што гаворыцца. Ён глядзіць на сам гук: набор зычных і галосных, націск у складах, рытм фраз і кароткія частотныя словы, на якія абапіраецца любая мова. Іспанская мае ўласны набор галосных і свой рытм; нямецкая і галандская шмат у чым падобныя, але разыходзяцца ў некалькіх гуках. Некалькі секунд выразнай мовы звычайна дастаткова, каб адрозніць іх адну ад адной.
Многія распазнавальнікі робяць гэта як пабочны эфект распазнавання слоў. Яны вызначаюць мову па пачатку аўдыё, як імавернасць для кожнай вядомай ім мовы. З такога падыходу вынікаюць дзве рэчы. Імавернасці заўсёды складаюцца ў адзінку, таму варыянта «мовы няма» не існуе: цішыня, кашаль або музычны ўдар таксама атрымаюць мову, часта з упэўненым балам. А рашэнне прымаецца па пачатку, а гэта найгоршы ўзор, які можна было выбраць. Многія запісы пачынаюцца з прывітанняў, імёнаў і назваў месцаў, якія нясуць вельмі мала моўнага сігналу: «Добрай раніцы, Марыя, сардэчна запрашаем у Берлін» амаль гэтак жа нямецкая, як і англійская. Іншыя пачынаюцца з цішыні або кашлю, і дэтэктар, які павінен вырашыць па такім матэрыяле, вырашыць усё роўна, упэўнена і на пустым месцы. Рэальнае аўдыё таксама так робіць: румынскія казанні, якія пачынаюцца з шуму пакоя і «Bună dimineața», можна цалкам упэўнена прыняць за італьянскае «Buona domenica».
Цана няправільнага адказу таксама горшая, чым здаецца. Распазнавальнік, які дэкадуе не ў той мове, не робіць арфаграфічных памылак — ён пераапрацоўвае сэнс. «For God so loved the world», дэкадаваная як румынская, стала «Forgot to love the world». Румынскае «mândria slujește», дэкадаванае як англійская, стала «Pride serves», што з’яўляецца дакладным перакладам сказа, пераклад якога ніхто не прасіў. Словы бегла, і ў транскрыпце няма ніякага знаку, што нешта не так, — менавіта таму памылка каштуе дорага.
Пяць рэчаў найчасцей збіваюць дэтэктары:
Тое, які з гэтых праблем вы сутыкнецеся, залежыць ад таго, ці прыходзіць аўдыё ў жывым эфіры, ці ўжо ляжыць у файле.
Для жывога транскрыбавання няма цэлага запісу, на які можна паглядзець. Аўдыё прыходзіць па меры таго, як гавораць, і транскрыпт павінен прыходзіць разам з ім. Таму мова вызначаецца, пакуль чалавек гаворыць, і адсочваецца, калі ён пераходзіць на іншую. Менавіта гэта азначае нататка пад пераключальнікам Spoken language пры старце жывога транскрыбавання ў панэлі кіравання: мова гаворцы вызначаецца аўтаматычна, і ён можа перайсці на іншую ў любы момант.
Пераход пацвярджаецца, перш чым быць ужыты, таму адзін шумны ўчастак не пацягне транскрыпт на іншую мову. Слабае месца — пачатак: калі першыя словы — шумнае прывітанне, першы радок можа быць у не той мове. Назваўшы мову, вы пазбягаеце гэтага.
З файламі ўсё працуе інакш, таму што ўвесь запіс ужо тут.
Файл — лепшая задача: не трэба давяраць першым секундам. Для файла мова вызначаецца па запісе цалкам, таму шумнае прывітанне ў пачатку не можа вырашыць справу.
Мова файла ўсё роўна застаецца рабочым дапушчэннем, а не вердыктам. Запіс, які сапраўды мяняе мову па ходзе, — напрыклад, інтэрв’ю, што з англійскай пераходзіць на румынскую ў другой палавіне, — адсочваецца, а не прымушаецца да адной мовы, а той, што чаргуе мовы на працягу ўсяго запісу, таксама апрацоўваецца.
Дэтэктар, які вырашае адзін раз і ніколі не аглядаецца, упэўнены ў няправільным месцы.
Ніякі дэтэктар мала чым дапамагае, калі ўвесь запіс шумны. Вызначэнне — стандартны варыянт, таму што ў большасці выпадкаў яно правільнае і нічога вам не каштуе. Аднак для некаторых запісаў мову варта назваць, і панэль кіравання падказвае, якія менавіта: называнне гаворнай мовы паляпшае дакладнасць на шумных запісах і пры моцных акцэнтах.
Гэта тыя выпадкі, дзе вызначэнне мае найменш матэрыялу для працы. Шум выдаляе сігналы, на якіх трымаецца дэтэктар; моцны акцэнт зрушвае іх у бок іншай мовы; блізкароднасная пара дае мала сігналаў з самага пачатку. Ангельскамоўны з моцным партугальскім акцэнтам у рэверберуючай зале цяжка вызначыць па адным гуку, і калі дэтэктар памыляецца, транскрыпт пераўтворыць англійскую мову ў партугальскую на ўвесь час, пакуль доўжыцца памылка. Назваўшы мову, вы ліквідуеце пытанне, і ўся ўвага пойдзе на словы.
Кароткі кантрольны спіс:
Называнне мовы — гэта налада транскрыбавання, а не ўліковага запісу, таму вы можаце вырашаць для кожнага запісу асобна. Усё вышэйсказанае зводзіцца да аднаго параметра API.
spokenLanguage азначае вызначэнне; session.update падчас патокуУ API spokenLanguage — гэта код мовы, напрыклад en; калі яго не перадаць, мова вызначаецца аўтаматычна. Ён з’яўляецца ў settings файлавага або спасылкавага транскрыбавання і ў параметрах realtime-сесіі. Вызначэнне і называнне ахопліваюць адны і тыя ж 100 моў. Пераклад на да 10 з іх — асобны выбар, і ён не залежыць ад таго, якая мова была вызначана або названа. Тое, як пераклад паспявае за мовай, разгледжана ў артыкуле Затрымка жывога перакладу, тлумачэнне.
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
Realtime-сесію можна стварыць з той жа опцыяй, і яе можна змяніць, пакуль ідзе аўдыё. Тэкставы кадр session.update з новым spokenLanguage ужываецца да мовы ад гэтага моманту; калі задаць "" або "auto", сесія вяртаецца да вызначэння, а невядомы код ігнаруецца. Выгляд субцітраў з кнопкай мовы можа дазволіць аператару назваць мову ў той момант, калі ён бачыць няправільны першы радок, — без перападлучэння.
{ "type": "session.update", "spokenLanguage": "ro" }
Спіс кодаў з іх назвамі даступны па GET /v1/languages, ключ для яго не патрэбны. Поўны realtime-працэс — ад стварэння сесіі на вашым серверы да чытання чарнавікоў і фіксацый — у артыкуле Транскрыбаванне ў рэальным часе праз WebSocket, а інтэрактыўная даведка — на {{api}}/docs. У панэлі кіравання той жа выбар — пераключальнік Spoken language, калі вы пачынаеце новае транскрыбаванне, а ключы API знаходзяцца ў Developers.