Запись

Как машина научилась слышать: звуковой спутник второй статьи

Экзамен прежде учёбы: 34,6 % ошибок в словах, четыре книги, которые лежали в материалах дважды, полтора часа обучения на домашней видеокарте — и 17,0 % на выходе. Здесь — расшифровки, которые можно сравнить строка в строку.

◆ ASR◆ аудио

Вторая статья серии вышла на ana-yurt.com — она про уши: про распознавание крымскотатарской речи, то есть про то, как компьютер слушает и записывает услышанное текстом. Эта страница — её спутник: здесь те же самые расшифровки, которые есть в статье, только выложенные строка в строку, чтобы разницу можно было увидеть глазами, а не поверить на слово.

Началось всё с унизительной цифры. У проекта уже была большая распознавалка, доученная на нашем языке, и ею даже пользовались — но честного экзамена ей ни разу не устраивали. Первое, что я сделал на этом этапе, — не стал ничего улучшать, а устроил экзамен: две книги целиком, два чтеца, которых модель не слышала вообще, 893 кусочка, 1 час 52 минуты. Результат — 34,6 % ошибок по словам, каждое третье слово мимо. А перед тем как что-то запускать, я сравнил учебный материал с экзаменационным не по именам файлов, а по тексту — и нашёл, что четыре аудиокниги лежат у меня дважды, нарезанные двумя разными программами под совершенно не связанными именами. У той самой книги, на которой я собирался проверять модель, двойник в учебном наборе имели 96,9 % кусочков (651 из 672). По именам файлов пересечений не было вообще ни одного.

Дальше — самая быстрая и самая скучная часть. Основную модель не трогают, рядом дописывают маленький «довесок» — 2 % от всех параметров. Полтора часа на одной домашней видеокарте, довесок весит 126 мегабайт, его можно переслать в мессенджере. На экзамене: 20,1 % вместо 34,6 %. А потом ошибок стало ещё меньше — без всякого обучения, одной лишь настройкой того, как модель подбирает слова, когда отвечает: 17,0 %, и ни один вес при этом не изменился.

Половина этого выигрыша пришлась на три кусочка из 893. Не потому, что модель их «не расслышала», а потому, что она на них зацикливалась: свернув не туда, жадный разбор уже не может исправиться и начинает ходить по кругу — – dedi Akimoviç, – dedi Akimoviç, … до упора в ограничение длины. Три кусочка, 0,34 % материала, дали 39 % всего выигрыша; остальные 890 улучшились ровно и без фокусов. Ниже видно и то и другое. И ещё одна история — про настройку, которая должна была помочь против зацикливания, а сломала живой крымскотатарский повтор. Наконец, цифра 17 % измерена в студийной тишине: когда чужая речь на фоне звучит так же громко, как нужная, ошибок становится 69 % — модель перестаёт работать. Это, а не «ещё данных», и есть главная задача следующего этапа.

Примеры

Три кусочка и три разных голоса. Ни один из этих кусочков не был в учебном материале: это проверено по спискам обучения, кусочек за кусочком, а не по названиям файлов. Все расшифровки скопированы дословно из выводов настоящих прогонов, ничего не перепечатано на слух. «В книге» — это человеческая расшифровка, по которой считается ошибка.

Пример 1

В книге
– dep dudaqlarını qaltıratıp qıçırdı. – Tanımayım, – dedi Vedut. – Tanıyım, – dedi tekrar Oksana.
Старая модель
Dev dudaqlarını qaltır atıp qışırdın. Tanımayım, dedi Vedut. Tanıyım, dedi tekrar aqşıdışqan
Наша модель, жадный разбор
– dedi Vedut,– dedi Akimov,– dedi Akimov,– dedi Akimov,– dedi Akimov,– dedi Akimov,– dedi Akimov,– dedi Akimov,– dedi Ak… «– dedi Akimov» повторено 32 раза, дальше обрезано ограничением длины
Наша модель, перебор вариантов
– dep, dudaqlarını qaltıratıp qıçırdı. – Tanımayım... – dedi Vedut. – Tanıyım... – dedi tekrar. Осталась одна ошибка: потеряно имя Oksana.
Тот самый зацикленный кусочек. Жадный разбор повторил «– dedi Akimov» 32 раза подряд и упёрся в ограничение длины; перебор вариантов вернул фразу.

Пример 2

В записи
- Angisi aceba? - mısqılnen tikilip baqtı Velide. - Mına baq, Eska ketti?
Старая модель
Añgi saace ba, mızqılnen tikilip baqtı Velide Mına baq, Eska ketti, 40 % ошибок по словам
Наша модель
– Angisi aceba? – mısqılnen tikilip baqtı Velide. – Mına baq! Eska ketti... 0 % — ни одной ошибки в словах
Женский голос, другой чтец: 9,1 с живого диалога. Старая модель рассыпала первые слова и потеряла всю разметку реплик; сегодняшняя записала фразу целиком и вернула тире.

Пример 3

В записи
Men, yalanayaq, bir uzun, divarları suvuq qoyum avutiske boyalangan koridornıñ ucunda turam.
Старая модель
Ben yağanayaq bir uzun, divarları sıvuq qoyun avütüske boylanğan koridornıñ ucunda tura 58 % ошибок по словам
Наша модель
Men, yalanayaq, bir uzun, divarları suvuq qoyum avutüske boyalangan koridornıñ ucunda turam. 8 % — одна ошибка из 12 слов
Третий голос, 7,6 с. Старая модель начала фразу по-турецки — «Ben» вместо «Men» — и дальше исказила половину слов: 7 ошибок из 12. Сегодняшняя ошиблась в одном слове.

Запрет, который сделал хуже

Против зацикливания есть прямолинейная настройка: запретить модели повторять одно и то же. На отборочном наборе она сломала 17 кусочков и починила один. Вот почему. Ребёнок бежит и зовёт: «Къартбаба, къартбаба!» Модель услышала это совершенно правильно — а запрет не дал ей записать услышанное, и она исказила второе слово, лишь бы оно не совпало с первым.

«Къартбаба, къартбаба!»

В книге
– Qartbaba, qartbaba, – tez-tez çapıp kelgen kiçkene Aziz
Без запрета
– Qartbaba! Qartbaba! – tez-tez çapıp kelgen kiçkene Aziz Услышано верно.
С запретом
– Qartbaba! Qartbabaa! – tez-tez çapıp kelgen kiçkene Aziz
С запретом пожёстче
– Qartbaba! Qartbava! – tez-tez çapıp kelgen kiçkene Aziz Второе «къартбаба» превратилось в несуществующее слово.
Двойное обращение — это обычный крымскотатарский. Так говорят. Запрет не умеет отличить живой повтор от машинного зацикливания.

Мне эта история нравится больше всех остальных на этом этапе, потому что она не про технику. Язык нельзя чинить запретами: любое правило вида «так не бывает» рано или поздно наткнётся на то, как люди на самом деле говорят.

Читать дальше

  • Полная статья на ana-yurt.com (RU)
  • Хабр (RU) — ссылка появится после публикации
  • Medium (EN) — ссылка появится после публикации
  • dev.to (EN) — ссылка появится после публикации
  • Hugging Face blog (EN) — ссылка появится после публикации
  • LinkedIn (EN) — ссылка появится после публикации