Запись
Как машина научилась слышать: звуковой спутник второй статьи
Экзамен прежде учёбы: 34,6 % ошибок в словах, четыре книги, которые лежали в материалах дважды, полтора часа обучения на домашней видеокарте — и 17,0 % на выходе. Здесь — расшифровки, которые можно сравнить строка в строку.
Вторая статья серии вышла на 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.
Пример 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 % — ни одной ошибки в словах
Пример 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 слов
Запрет, который сделал хуже
Против зацикливания есть прямолинейная настройка: запретить модели повторять одно и то же. На отборочном наборе она сломала 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) — ссылка появится после публикации