«Да», «четверг», «нет, другой». Большая часть того, что звонящий говорит агенту, укладывается в несколько слов, и несколько слов — самое трудное для распознавания речи. Эта заметка объясняет почему и описывает путь для коротких ответов, который мы встроили в Oasis Speech 2. Результаты по языкам собраны в заметке Oasis Speech 2: распознавание на 48 языках.
Мы измеряли на 48 языках, которые распознаёт Oasis Speech, в телефонном качестве: каждая реплика в чистом виде и после телефонного кодека G.711, а также записи настоящих людей, которые произносят короткие устные запросы. Версия 1 и версия 2 Oasis Speech работали на одном и том же аудио.
Oasis Speech 2 снижает долю ошибок на ответах из одного слова на 49% (медиана по 48 языкам), и на коротких ответах улучшились все 48 языков, причём каждое изменение статистически значимо. Короткий ответ распознаётся примерно за 150 мс по медиане (по 95-му процентилю примерно за 210 мс), а на аудио колл-центров ошибка калибровки оценки уверенности снизилась на 74%.
Телефонный разговор состоит из коротких ответов
Послушайте служебный звонок со стороны звонящего. «Да». «Во вторник». «Нет, другой номер». «Петрович». «Четыре четыре один семь». Агент спрашивает, звонящий отвечает одним-тремя словами.
Эти слова несут весь разговор. Ослышанное «да» записывает не на то время. Ослышанная фамилия создаёт вторую карточку клиента. Ослышанная цифра отправляет напоминание не на тот счёт.
Распознавание речи обычно строят, настраивают и проверяют на предложениях. На предложении обычный распознаватель ошибается примерно в двух символах из ста. На одном слове, вырезанном из той же речи, обычный распознаватель может ошибаться в одном символе из двух. Короткие ответы — самый трудный случай для распознавания и самый частый на звонке.
Почему короткое трудно
На коротком ответе накладываются шесть эффектов. Каждый мал на предложении и велик на слове.
Нехватка контекста
Распознавание опирается на контекст. Внутри предложения распознаватель предсказывает каждое слово по соседям, и соседи отсекают большую часть неверных вариантов. У отдельного слова соседей нет. Единственное свидетельство — звук.
Бюджет свидетельств
Ответ из одного слова длится 300–600 мс. Щелчок на линии, вдох или артефакт кодека занимает в нём гораздо большую долю, чем в предложении на пять секунд, а вокруг ничего нет, чтобы усреднить ущерб.
Хрупкие края
Первые и последние звуки реплики потерять проще всего: говорящий начинает тихо, детектор голоса срабатывает с небольшим опозданием, последний согласный затухает. В предложении это два звука из пятидесяти. В слове «нет» это два звука из трёх.
Узкая полоса
Телефонная линия передаёт примерно 300–3400 Гц. Согласные, по которым различаются многие слова (например, «с», «ф» и «ш»), несут значительную часть энергии выше этого диапазона. В предложении контекст их восстанавливает. В отдельном слове их не восстановит ничто.
Притяжение тишины
Распознаватель, обученный на беглой речи, стремится выдать слова. Получив вдох, кашель или несколько сотен миллисекунд шума линии, он склонен вернуть короткое правдоподобное слово: «да», «хорошо», «алло». В коротких репликах такого аудио гораздо больше, чем в предложениях.
Беспощадная метрика
Одна неверная буква в слове «нет» — это треть слова. Те же промахи, что стоят предложению одного пункта ошибки, стоят короткому ответу тридцати.
Свой путь
Oasis Speech 2 считает короткую реплику отдельной задачей. Если реплика короче нескольких секунд, она идёт по специальному пути для коротких ответов, до которого предложения не доходят. Этот путь делает четыре вещи, которые распознавателю предложений не нужны.
Он взвешивает несколько прочтений, прежде чем ответить
Путь для коротких ответов хранит несколько конкурирующих прочтений и не фиксирует первую найденную расшифровку. Выбирает между ними по тем свидетельствам, которые важны для короткого ответа: насколько каждое согласуется со звуком, насколько правдоподобно как то, что человек говорит в ответ, и подходит ли его длина к длине речи.
Он знает, какой длины бывает ответ
На коротком аудио распознаватель склонен пропустить слово или выдумать лишнее. Проверка длины, подобранная для каждого языка, удерживает ответ в пределах того, что может вместить длительность речи.
Он сохраняет тишину тишиной
Отдельный фильтр неречевых звуков смотрит на акустику реплики. На кашель, щелчок или голос на заднем плане он возвращает пустой результат вместо выдуманного «да». На настоящих записях коротких ответов фильтр не мешал: он обнулил не более 0,2% настоящих коротких ответов.
Он говорит, насколько уверен
Каждый результат несёт оценку уверенности, откалиброванную так, что 0,8 означает: верны примерно четыре слова из пяти этой реплики, и для ответа из одного слова, и для предложения. На аудио колл-центров ошибка калибровки снизилась на 74%. Агент использует оценку: ниже порога он просит звонящего повторить и не угадывает имя или цифру.
Настройка под каждый язык
Мы подбираем путь отдельно для каждого из 48 языков, считая короткие ответы самостоятельной категорией, а не побочным продуктом предложений. Настройки языка поставляются, только если выигрыш статистически несомненен: парный бутстрэп-интервал изменения лежит целиком ниже нуля.
Путь не замедляет распознавание. Короткий ответ возвращается примерно за 150 мс по медиане и примерно за 210 мс по 95-му процентилю.
Как мы измеряли
- 48 языков, измеренные в телефонном качестве.
- Обе линии. Каждую реплику мы измеряем дважды: в исходном виде и после G.711, кодека обычной телефонной линии. Цифры — среднее из двух.
- Короткие реплики вырезаны как ответы. Из каждого предложения мы берём одну длинную реплику и две короткие из одного-трёх слов. Короткую реплику режем по естественной паузе, где возможно, оставляем 80 мс тишины вокруг неё и дополняем собственной тишиной записи, а не соседними словами.
- Реплики, похожие на ответы. Подмножество коротких реплик с тишиной с обеих сторон и без одинокого слова-паразита: ближайшее к ответу звонящего.
- Версия 1 против версии 2 на одном и том же аудио, нарезанном и дополненном одинаково.
- Статистика. Медианы по языкам с 95%-ными интервалами, которые передискретизируют и языки, и предложения в каждом. Язык считается улучшившимся, только если его изменение остаётся значимым после поправки Холма по всем 48.
Результаты
Oasis Speech 2 снижает долю ошибок на коротких ответах по сравнению с версией 1. Медиана по 48 языкам.
| Короткие реплики | Снижение доли ошибок | Улучшившиеся языки |
|---|---|---|
| Одно слово | 49% | 48 из 48 |
| Два слова | 42% | 48 из 48 |
| Три слова | 41% | 48 из 48 |
| Все короткие реплики | 44% | 48 из 48 |
| Реплики, похожие на ответы | 43% | 36 из 47, ни один не хуже |
Восемь языков подробнее
| Язык | Снижение доли ошибок |
|---|---|
| Сербский | 51% |
| Боснийский | 49% |
| Хорватский | 44% |
| Итальянский | 40% |
| Немецкий | 36% |
| Испанский | 32% |
| Португальский | 31% |
| Французский | 27% |
На настоящих коротких записях
Мы измерили также записи настоящих людей, которые произносят своим голосом короткие устные запросы из одного-трёх слов. Oasis Speech 2 снижает на них долю ошибок, через телефонный кодек G.711:
| Язык | Снижение доли ошибок |
|---|---|
| Испанский | 27% |
| Немецкий | 41% |
| Нидерландский | 30% |
| Турецкий | 33% |
| Португальский | 31% |
| Польский | 29% |
| Французский | 40% |
| Венгерский | 52% |
| Арабский | 34% |
Версия 2 превзошла версию 1 на каждом из этих языков, и на чистом аудио, и через телефонный кодек. Это самые близкие к реальному звучанию звонящего цифры по коротким репликам. На чистом аудио доля ошибок на коротких ответах на испанском составляет 2,9%, на немецком 4,0% (чем меньше, тем лучше).
Что агент делает с результатом
Агент опирается на то, что возвращает распознавание:
- Он зачитывает важное. Имена, числа, суммы и даты агент зачитывает звонящему, прежде чем записать.
- Он переспрашивает вместо догадки. Когда оценка уверенности низкая, агент просит звонящего повторить и никогда не подставляет цифру, которую не расслышал.
- Мы нарочно тестируем плохое распознавание. Polygon подаёт агентам искажённый текст, пропущенные слова, цифры по одной и слова, похожие по звучанию, чтобы проверить, справляется ли агент, когда не справляется распознавание. Метод описан в заметке Как мы оцениваем разговор.
Страница «Языки» ставит оценку каждому из 48 языков, которые агент слышит и на которых говорит.