Распознавание речи: очень краткий вводный курс

Распознавание речи: очень краткий вводный курс

Рассказать неспециалисту максимально просто о работе компьютерного распознавания речи и преобразовании её в текст — задача почти непосильная. Ни один рассказ об этом не обходится без сложных формул и математических терминов. Мы попробуем максимально понятно и немного упрощённо объяснить, как ваш смартфон понимает речь, когда машины научились распознавать человеческий голос и в каких неожиданных областях используется эта технология.

Необходимое предуведомление: если вы разработчик или, тем более, математик, вы едва ли узнаете из поста что-то новое и даже посетуете на недостаточную научность материала. Наша цель — самым простым образом познакомить непосвящённых читателей с речевыми технологиями и рассказать, как и зачем Toshiba взялась за создание своего голосового ИИ.

Важные вехи в истории распознавания речи

История распознавания электронными машинами человеческой речи началась чуть раньше, чем принято думать: в большинстве случаев принято вести отсчёт с 1952 года, но на самом деле одним из первых устройств, реагировавшим на голосовые команды, был робот Televox, о котором мы уже писали. Созданный в 1927 году в США робот Герберт Телевокс представлял собой несложное устройство, в котором различные реле реагировали на звуки разной частоты. В роботе было три камертона, каждый из которых отвечал за свою тональность. В зависимости от того, какой камертон срабатывал, включалось то или иное реле.

image
Фактически вся «начинка» Телевокса, включая систему распознавания команд, располагалась на стойке в районе туловища «робота». Закрыть её крышкой было нельзя, иначе камертоны не смогли бы корректно «слышать» звуки. Источник: Acme Telepictures / Wikimedia

С Телевоксом можно было общаться как отдельными сигналами с помощью свистка, так и короткими словесными репликами — их камертоны тоже раскладывали на последовательность звуков. Создатель робота Рой Уэнсли даже устраивал фантастическую по тем временам демонстрацию, говоря команду «Сезам, откройся», по которой Телевокс включал реле, отвечающее за открытие двери. Никаких цифровых технологий, нейросетей, ИИ и машинного обучения — только аналоговая техника!

Следующим ключевым изобретением, открывшим путь к настоящему распознаванию человеческой речи, стала машина Audrey, разработанная в 1952 году в кузнице инноваций Bell Labs. Огромная Audrey потребляла кучу электроэнергии и была размером с хороший шкаф, но вся её функциональность сводилась к распознаванию произнесённых цифр от нуля до девяти. Всего десять слов, да, но не будем забывать, что и Audrey была аналоговой машиной.
image
К сожалению, история не сохранила публичных фотографий Audrey, есть только принципиальная схема. Простая на бумаге, сложная в воплощении — по воспоминаниям современников, компоненты Audrey занимали целый шкаф. Источник: Bell Labs

Работало это так: диктор проговаривал в микрофон цифры, делая между словами интервалы не менее 350 мс, Audrey переводила услышанные звуки в электрические сигналы и сравнивала их с записанными в аналоговой памяти образцами. По результатам сравнения машина подсвечивала цифру на приборной панели.

Это был прорыв, но реальной пользы от Audrey не было и быть не могло — машина распознавала голос своего создателя с точностью до 97%, другие специально тренированные дикторы получали точность 70-80%. Посторонние люди, впервые контактирующие с Audrey, как бы ни старались, видели на табло свою цифру только в 50% случаев.

Несмотря на революционные для своего времени результаты, Audrey не нашла, да и не могла найти практического применения. Предполагалось, что систему можно приспособить вместо телефонных операторов, но всё же услуги человека оказались удобней, быстрее и гораздо надёжней, чем Audrey.

Презентация похожей на Audrey, только гораздо меньших размеров, машины — IBM Shoebox. Хорошо видна скорость работы Shoebox. Машина также могла выполнять простейшие математические операции сложения и вычитания

В начале 1960-х работы по созданию машин для распознавания речи велись в Японии, Великобритании, США и даже СССР, где изобрели очень важный алгоритм динамической трансформации временной шкалы (DTW), с помощью которого удалось построить систему, знающую около 200 слов. Но все наработки были похожи друг на друга, а общим недостатком стал принцип распознавания: слова воспринимались как целостные звуковые отпечатки, и затем их сверяли с базой образцов (словарём). Любые изменения скорости, тембра и чёткости проговаривания слов значительно влияли на качество распознавания. Перед учёными встала новая задача: научить машину слышать отдельные звуки, фонемы или слоги и затем составлять из них слова. Такой подход позволил бы нивелировать эффект смены диктора, когда в зависимости от говорящего уровень распознавания резко различался.

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

В 1971 году Управление перспективных исследовательских проектов Министерства обороны США (DARPA) запустило пятилетнюю программу с бюджетом $15 млн, в рамках которой была поставлена задача создать систему распознавания, знающую не менее 1000 слов. К 1976 году Университет Карнеги — Меллона представил Harpy, способную оперировать словарём из 1011 слов. Harpy не сличала целиком услышанные слова с образцами, а разделяла их на аллофоны (образец звучания фонемы в зависимости от окружающих её букв). Это был очередной успех, подтвердивший, что будущее за распознаванием отдельных фонем, а не цельных слов. Впрочем, среди недостатков Harpy был крайне низкий уровень корректного распознавания аллофонов (вариантов произношения фонем) — около 47%. При такой высокой погрешности доля ошибок росла вслед за объёмом словаря.

Описание принципа работы Harpy. Видео работы программы не сохранилось.

Опыт Harpy показал, что наращивать словари целостных звуковых отпечатков бесполезно — это лишь увеличивает время распознавания и радикально снижает точность, поэтому исследователи всего мира пошли по другому пути — распознавания фонем. В середине 1980-х машина IBM Tangora могла научиться понимать речь любого диктора с любым акцентом, диалектом и особенностями произношения, для этого лишь требовалась 20-минутная тренировка, в ходе которой накапливалась база образцов фонем и аллофонов. Применение скрытой марковской модели повысило словарный запас IBM Tangora до впечатляющих 20 000 слов — в 20 раз больше, чем было у Harpy, и уже сравнимо со словарным запасом подростка.

Все системы распознавания речи с 1950-х до середины 1990-х годов не умели считывать естественную разговорную речь человека — слова приходилось произносить отдельно, делая паузы между ними. По-настоящему революционным событием стало внедрение разработанной в 1980-х скрытой марковской модели — статистической модели, строившей точные предположения о неизвестных элементах на основе вытекающих из них известных. Упрощённо говоря, с помощью всего нескольких распознанных фонем в одном слове скрытая марковская модель очень точно подбирает недостающие фонемы, тем самым значительно повышая точность распознавания речи.

В 1996 году появилась первая коммерческая программа, способная различать не отдельные слова, а беспрерывный поток естественной речи — IBM MedSpeak/Radiology. Продукт IBM был специализированным, он использовался в медицине для стенографирования описания результатов рентгенограммой, произносимых врачом в ходе исследования. Тут мощность компьютеров наконец стала достаточной для того, чтобы распознавать отдельные слова «на лету». Плюс алгоритмы стали более совершенными, появилось корректное распознавание микропауз между произносимыми словами.

Первым универсальным движком распознавания естественной речи стала программа Dragon NaturallySpeaking 1997-го года. При работе с нею диктору (т. е. пользователю) не требовалось проходить тренировку или оперировать определённым лексиконом, как в случае с MedSpeak, — с NaturallySpeaking мог работать любой человек, даже ребёнок, программа не ставила никаких правил произношения.

image
Несмотря на уникальность Dragon NaturallySpeaking, ИТ-обозреватели не выказывали особого восторга от распознавания естественной речи. Среди недостатков отмечались ошибки распознавания и некорректная обработка команд, обращённых к самой программе. Источник: itWeek

Примечательно, что движок распознавания был готов ещё в 1980-х, но из-за недостаточной мощности компьютеров разработка Dragon Systems (сейчас компанией владеет Nuance Communications) не успевала «на лету» определять промежутки между словами, что необходимо для распознавания естественной речи. Без этого слова «пока лечится», например, могли быть услышаны компьютером как «покалечится».

Впереди был рост популярности систем распознавания речи, нейросети, появление голосового поиска Google на мобильных устройствах и, наконец, голосовой ассистент Siri, не просто конвертирующий речь в текст, но и адекватно отвечающий на построенные любым естественным образом запросы.

Как услышать сказанное и додумать нерасслышанное?

В наше время лучшим средством для создания движка распознавания речи стала рекуррентная нейросеть (RNN), на которой построены все современные сервисы распознавания голоса, музыки, изображений, лиц, объектов, текста. RNN позволяет с высочайшей точностью понимать слова, а также предсказывать наиболее вероятное слово в рамках контекста, если оно не было распознано.

Нейросетевая темпоральная классификация модели (CTC) выделяет в записанном аудиопотоке (слове, фразе) отдельные фонемы и расставляет их в том порядке, в котором они были произнесены. После многократного анализа, CTC очень чётко выделяет определённые фонемы, а их текстовая запись сравнивается с базой слов нейросети и затем превращается в распознанное слово.

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

Рекуррентная нейросеть для распознавания речи хороша тем, что после длительной тренировки базой различных произношений она научится с высокой точностью различать фонемы и составлять из них слова вне зависимости от качества и характера произношения. И даже «додумывать» с высокой точностью в рамках контекста слова, которые не удалось распознать однозначно из-за фоновых шумов или нечёткого произношения.

Но с предсказаниями RNN есть нюанс — рекуррентная нейросеть может «додумать» пропущенное слово только опираясь на самый ближайший контекст примерно в пять слов. За пределами этого пространства анализ вестись не будет. А он порой ох как нужен! Например, для распознавания мы произнесли фразу «Великий русский поэт Александр Сергеевич Пушкин», в которой слово «Пушкин» (специально выделено курсивом) сказали настолько неразборчиво, что ИИ не смог точно распознать его. Но рекуррентная нейросеть, опираясь на имеющийся опыт, полученный в ходе обучения, может предположить, что рядом со словами «русский», «поэт», «Александр» и «Сергеевич» чаще всего встречается слово «Пушкин». Это достаточно простая задача для обученной на русских текстах RNN, потому что очень конкретный контекст позволяет делать предположения с высочайшей точностью.

А если контекст расплывчатый? Возьмём другой текст, в котором одно слово не сможет быть распознано: «Наше всё, Александр Сергеевич Пушкин, трагически погиб в расцвете лет после дуэли с Дантесом. Именем поэта назван Пушкинский театральный фестиваль». Если убрать слово «Пушкинский», RNN попросту не сможет угадать его, опираясь на контекст предложения, ведь в нём упомянуты лишь театральный фестиваль и отсылка к имени неизвестного поэта — возможных вариантов масса!

Вот тут вступает в дело архитектура долгой краткосрочной памяти (Long short-term memory, LSTM) для рекуррентных нейросетей, созданная в 1997 году (подробная статья о LSTM). Она специально разрабатывалась для того, чтобы добавить RNN умение учитывать контекст, удалённый от обрабатываемого события, — результаты решения предыдущих задач (то есть, распознаваний слов) проносятся сквозь весь процесс распознавания, сколь бы длинным не был монолог, и учитываются в каждом случае сомнений. Причём расстояние удаления почти не влияет на эффективность работы архитектуры. С помощью LSTM нейросеть при необходимости угадать слово будет учитывать весь имеющийся в рамках задачи опыт: в нашем примере RNN заглянет в предыдущее предложение, обнаружит, что ранее упоминались Пушкин и Дантес, поэтому «Именем поэта» скорее всего указывает на кого-то из них. Так как нет никаких данных о существовании театрального фестиваля Дантеса, то речь идёт о Пушкинском (тем более что звуковой отпечаток нераспознанного слова очень похож) — такой фестиваль был в базе для обучения нейросети.

«Исповедь голосового помощника». Когда в дело вступает хорошо обученная нейросеть, голосовой ассистент может точно додумать, что же нужно сделать с «зелёными тапочками»

Как распознавание речи делает мир лучше?

В каждом случае применения по-разному — кому-то оно помогает общаться с гаджетами, причём по данным PricewaterhouseCoopers более половины пользователей смартфонов отдают устройствам голосовые команды — среди взрослых людей (25-49 лет) доля тех, кто постоянно пользуется голосовыми интерфейсами, даже выше, чем среди молодёжи (18-25) — 65% против 59%. А в России хотя бы раз с Siri, Google Assitant или «Алисой» общались не менее 71% населения. 45 млн россиян постоянно общаются с «Алисой» от «Яндекса», причём на долю «Яндекс.Карт»/«Яндекс.Навигатора» приходится только 30% запросов.

Кому-то распознавание речи реально помогает в работе — например, как мы говорили выше, врачам: в медицине с 1996 года (когда вышел IBM MedSpeak) распознавание применяется для записи анамнеза и при исследовании снимков — медик может продолжать работу, не отвлекаясь на записи в компьютер или бумажную карту. Кстати, работа над диктовкой в медицине ведётся не только на Западе — в России существует программа Voice2Med от «Центра речевых технологий».

Есть и иные примеры — в том числе наш собственный. Организация бизнеса Toshiba подразумевает полную инклюзию, то есть равные права и возможности для людей с различными ограничениями здоровья, в том числе для сотрудников с нарушениями слуха. У нас есть корпоративная программа Universal Design Advisor System, в рамках которой люди с различными видами инвалидности участвуют в разработке продуктов Toshiba, внося предложения для повышения их удобства людям с ограничениями здоровья — то есть мы не предполагаем, как можно сделать лучше, а оперируем реальным опытом и отзывами сотрудников.

Несколько лет назад в главном офисе Toshiba в Японии мы столкнулись с очень интересной задачей, потребовавшей разработать новую систему распознавания речи. Во время работы Universal Design Advisor System мы получили важный инсайт: сотрудники с нарушениями слуха хотят участвовать в обсуждениях на встречах и лекциях в реальном времени, а не ограничиваться чтением обработанной стенограммы часы или дни спустя. Запуск распознавания речи через смартфон в таких случаях даёт очень слабый результат, поэтому специалистам Toshiba пришлось взяться за разработку специализированной системы распознавания. И, конечно, мы сразу столкнулись с проблемами.

Разговорная речь колоссально отличается от речи письменной — мы не говорим так, как пишем письма, а реальный разговор, переведённый в текст, выглядит очень неаккуратным и даже нечитабельным. То есть, если мы будем даже с высокой точностью конвертировать диалоги на утренней планёрке в текст, то получим бессвязную мешанину, изобилующую словами-паразитами, междометиями и задумчивыми «ааа», «эээ» и «ммм». Чтобы избавиться в тексте от транскрибирования ненужных звуков, слов и выражения эмоций, мы решили разработать ИИ, способный максимально безошибочно распознавать не всегда нужные элементы разговорной речи, в том числе эмоциональный окрас некоторый слов (например, «да ну» может звучать как скепсис или как искренне удивление, а это буквально противоположные значения).


Так выглядит ноутбук с комплектом периферии для распознавания голоса с помощью ИИ Toshiba (слева) и приложение с результатами для конечных устройств (справа). Источник: Toshiba

Тут пригодилась LSTM, без которой точность распознавания была недостаточной для того, чтобы полученный текст можно было читать и понимать без усилий. Причём LSTM пригодилась не только для более точного предугадывания слов в контексте, но и для корректной обработки пауз в середине предложения и междометий-паразитов — для этого мы обучили нейросеть вот этим паразитам и паузам, естественным для разговорной речи.

Значит ли это, что теперь нейросеть может убирать из стенограмм междометия? Да, может, но делать этого не нужно. Дело в том, что (ещё один полученный инсайт) люди с нарушениями слуха ориентируются в том числе на движения губ говорящего. Если губы движутся, но на экране не появляется соответствующий этим движениям текст, возникает ощущение, будто система распознавания упустила часть беседы. То есть для того, кто не может слышать, важно получать максимум информации о разговоре, включая злосчастные паузы и меджометия. Поэтому движок Toshiba оставляет эти элементы в стенограмме, но в реальном времени приглушает яркость букв, давая понять, что это необязательные для понимания текста детали.

Вот так на клиентском устройстве выглядит результат распознавания на лету. В серый цвет окрашиваются не несущие смысловой нагрузки части монолога

Сейчас ИИ Toshiba работает с английской, японской и китайской речью, причём возможен даже перевод между языками на лету. Его не обязательно использовать для стенографирования на лету — ИИ может быть адаптирован для работы с голосовыми ассистентами, которые наконец научатся адекватно воспринимать междометия, паузы и запинки при произношении человеком команды. В марте 2019 года система успешно использовалась для добавления субтитров к видеотрансляции IPSJ National Convention, проводимой в Японии. В ближайших планах — превращение ИИ Toshiba в общедоступный сервис и опыты с внедрением распознавания голоса на производствах.

 

Источник

Toshiba, распознавание голоса, распознавание речи, технологии

Читайте также