Как работает распознавание голоса
Как это работает? Распознавание речи
Сегодня много кто решает повседневные задачи на ходу — с телефона. С его помощью можно проверить почту, отправить документы и фотографии, найти ближайший банкомат или построить автомобильный маршрут. Не для всех подобных задач удобно пользоваться клавиатурой, поэтому сейчас одно из самых актуальных направлений мобильной разработки — это управление голосом.
В основе голосового управления лежит технология распознавания речи. В ней задействованы достижения различных областей: от компьютерной лингвистики до цифровой обработки сигналов. На конференции YaC 2013 в начале октября Яндекс представил свою технологию распознавания речи, и сегодня мы хотели бы рассказать о том, как она работает.
Акустическая модель
Если сказать голосовому поиску «Лев Толстой», смартфон услышит не имя и фамилию, не два слова, а звуковой сигнал, в котором звуки плавно перетекают друг в друга, не имея чётких границ. Задача системы распознавания речи — восстановить по этому сигналу, что было сказано. Ситуацию осложняет то, что одна и та же фраза, произнесённая разными людьми в разной обстановке, будет давать совершенно непохожие друг на друга сигналы. Правильно интерпретировать их помогает система акустического моделирования.
Когда вы произносите голосовой запрос, например, в Яндекс.Навигаторе, смартфон записывает его и отправляет на сервер Яндекса. На сервере запись разделяется на много маленьких фрагментов (фреймов) длиной 25 миллисекунд, внахлёст, с шагом 10 миллисекунд. То есть из одной секунды вашей речи получается сто фреймов.
Дальше каждый из них пропускают через акустическую модель — функцию, которая определяет, какие звуки вы произнесли. На основе этих данных система, натренированная методами машинного обучения, определяет варианты слов, которые вы видите в результатах поиска. Мобильный Браузер в ответ на запрос «Лев Толстой» найдёт сайты о великом писателе, а Навигатор и Карты предложат улицу Льва Толстого.
Точность результатов напрямую зависит от того, насколько хорошо система определяет произнесённые звуки. Для этого достаточно точным и полным должен быть фонетический алфавит, с которым она работает.
Фонетический алфавит Яндекса
В русском языке, по разным теориям, около 40 фонем (звуковых единиц). Наша система распознавания речи сопоставляет входящий речевой сигнал с фонемами, а потом уже из них собирает слова. Например, слово «Яндекс» состоит из семи фонем — [й][а][н][д][э][к][с]. Фонемы могут обладать различной длительностью, и в разбивке по фреймам слово «Яндекс» может выглядеть, например, так — [й][й][а][а][а][а][а][а][ а][а][а][а][н][н][д][д][э ][к][с]. Произношение любой фонемы зависит от её соседей и позиции в слове. То есть звук [а] в начале, в середине и в конце слова — это три разных [а], а звук [а] между двумя гласными в сочетании «на аудиозаписи» отличается от [а] между согласными в слове «бак». Поэтому для хорошего распознавания фонема — слишком грубая единица.
Чтобы точнее смоделировать произношение фонемы, мы, во-первых, делим каждую фонему на три части: условные начало, середину и конец. Во-вторых, мы разработали свой фонетический алфавит, который учитывает позицию и контекст фонем. Брать в работу все возможные варианты контекстно-зависимых фонем было бы неблагоразумно, так как многие из них не встречаются в реальной жизни. Поэтому мы научили нашу программу рассматривать похожие звуки вместе. В результате мы получили набор из 4000 элементарных единиц — сенонов. Это и есть фонетический алфавит Яндекса, с которым работает наша технология распознавания речи.
Вероятности
В идеальном мире программа безошибочно определяет, какая фонема соответствует каждому фрагменту голосового запроса. Но даже человек иногда может не понять или не расслышать все звуки и достраивает слово исходя из контекста. И если человек опирается на собственный речевой опыт, то наша система оперирует вероятностями.
Во-первых, каждый фрагмент голосового запроса (фрейм) сопоставляется не с одной фонемой, а с несколькими, подходящими с разной степенью вероятности. Во-вторых, есть таблица вероятностей переходов, которая указывает, что после «а» с одной вероятностью будет тоже «а», с другой — «б» и так далее. Это позволяет определить варианты последовательности фонем, а потом, по имеющимся у программы данным о произношении, морфологии и семантике — варианты слов, которые вы могли сказать.
Программа также умеет восстанавливать слова по смыслу. Если вы находитесь в шумном месте, говорите не очень чётко или используете неоднозначные слова, она достроит ваш запрос исходя из контекста и статистики. Например, фразу «мама мыла…» программа с большей вероятностью продолжит как «мама мыла раму», а не как «мама мыла рану». Благодаря машинному обучению на множестве данных наша программа устойчива к шуму, хорошо распознаёт речь с акцентом, качество распознавания практически не зависит от пола и возраста говорящего.
Сейчас наша технология распознавания речи правильно определяет 94% слов в Навигаторе и мобильных Картах и 84% слов в мобильном Браузере. При этом на распознавание уходит около секунды. Это уже весьма достойный результат, и мы активно работаем над его улучшением. Мы верим, что через несколько лет голосовой интерфейс ввода не будет уступать классическим способам.
Машинный слух. Как работает идентификация человека по его голосу
Содержание статьи
Характеристики голоса
В первую очередь голос определяется его высотой. Высота — это основная частота звука, вокруг которой строятся все движения голосовых связок. Эту частоту легко почувствовать на слух: у кого-то голос выше, звонче, а у кого-то ниже, басовитее.
Другой важный параметр голоса — это его сила, количество энергии, которую человек вкладывает в произношение. От силы голоса зависит его громкость, насыщенность.
Еще одна характеристика — то, как голос переходит от одного звука к другому. Этот параметр наиболее сложный для понимания и для восприятия на слух, хотя и самый точный — как и отпечаток пальца.
Предобработка звука
Человеческий голос — это не одинокая волна, это сумма множества отдельных частот, создаваемых голосовыми связками, а также их гармоники. Из-за этого в обработке сырых данных волны тяжело найти закономерности голоса.
Нам на помощь придет преобразование Фурье — математический способ описать одну сложную звуковую волну спектрограммой, то есть набором множества частот и амплитуд. Эта спектрограмма содержит всю ключевую информацию о звуке: так мы узнаем, какие в исходном голосе содержатся частоты.
Но преобразование Фурье — математическая функция, которая нацелена на идеальный, неменяющийся звуковой сигнал, поэтому она требует практической адаптации. Так что, вместо того чтобы выделять частоты из всей записи сразу, эту запись мы поделим на небольшие отрезки, в течение которых звук не будет меняться. И применим преобразование к каждому из кусочков.
Спектрограмма пения птицы
Выбрать длительность блока несложно: в среднем один слог человек произносит за 70–80 мс, а интонационно выделенный вдвое дольше — 100–150 мс. Подробнее об этом можно почитать в исследовании.
Следующий шаг — посчитать спектрограмму второго порядка, то есть спектрограмму от спектрограммы. Это нужно сделать, поскольку спектрограмма, помимо основных частот, также содержит гармоники, которые не очень удобны для анализа: они дублируют информацию. Расположены эти гармоники на равном друг от друга расстоянии, единственное их различие — уменьшение амплитуды.
Давай посмотрим, как выглядит спектр монотонного звука. Начнем с волны — синусоиды, которую издает, например, проводной телефон при наборе номера.
Видно, что, кроме основного пика, на самом деле представляющего сигнал, есть меньшие пики, гармоники, которые полезной информации не несут. Именно поэтому, прежде чем получать спектрограмму второго порядка, первую спектрограмму логарифмируют, чем получают пики схожего размера.
Логарифм спектрограммы синуса
Теперь, если мы будем искать спектрограмму второго порядка, или, как она была названа, «кепстр» (анаграмма слова «спектр»), мы получим во много раз более приличную картинку, которая полностью, одним пиком, отображает нашу изначальную монотонную волну.
Кепстр
Одна из самых полезных особенностей нашего слуха — его нелинейная природа по отношению к восприятию частот. Путем долгих экспериментов ученые выяснили, что эту закономерность можно не только легко вывести, но и легко использовать.
Зависимость мела от герца
Эту новую величину назвали мел, и она отлично отражает способность человека распознавать разные частоты — чем выше частота звука, тем сложнее ее различить.
График перевода герца в мелы
Теперь попробуем применить все это на практике.
Идентификация с использованием MFCC
Мы можем взять длительную запись голоса человека, посчитать кепстр для каждого маленького участка и получить уникальный отпечаток голоса в каждый момент времени. Но этот отпечаток слишком большой для хранения и анализа — он зависит от выбранной длины блока и может доходить до двух тысяч чисел на каждые 100 мс. Поэтому из такого многообразия необходимо извлечь определенное количество признаков. С этим нам поможет мел-шкала.
Мы можем выбрать определенные «участки слышимости», на которых просуммируем все сигналы, причем количество этих участков равно количеству необходимых признаков, а длины и границы участков зависят от мел-шкалы.
Вычисление мел-частотных кепстральных коэффициентов
Вот мы и познакомились с мел-частотными кепстральными коэффициентами (MFCC). Количество признаков может быть произвольным, но чаще всего варьируется от 20 до 40.
Эти коэффициенты отлично отражают каждый «частотный блок» голоса в каждый момент времени, а значит, если обобщить время, просуммировав коэффициенты всех блоков, мы сможем получить голосовой отпечаток человека.
Тестирование метода
Давай скачаем несколько записей видео с YouTube, из которых извлечем голос для наших экспериментов. Нам нужен чистый звук без шумов. Я выбрал канал TED Talks.
Скачаем несколько видеозаписей любым удобным способом, например с помощью утилиты youtube-dl. Она доступна через pip или через официальный репозиторий Ubuntu или Debian. Я скачал три видеозаписи выступлений: двух женщин и одного мужчины.
Затем преобразуем видео в аудио, создаем несколько кусков разной длины без музыки или аплодисментов.
Теперь разберемся с программой на Python 3. Нам понадобятся библиотеки numpy для вычислений и librosa для обработки звука, которые можно установить с помощью pip . Для твоего удобства все сложные вычисления коэффициентов упаковали в одну функцию librosa.feature.mfcc . Загрузим звуковую дорожку и извлечем характеристики голоса.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее
Использование систем распознавания голоса для контроля доступом
Из всех типов биометрических приложений, аутентификация на основе голоса пользуется большим спросом у потребителя. Распознавание голоса – это бесконтактная, неинвазивная и простая в использовании технология.
По словам компании Unisys Survey потребители предпочитают такие типы биометрики: распознавание голоса (32%), распознавание отпечатков пальцев (27%), сканер лица (20%), сканирование кисти руки (12%) и сканирование радужной оболочки глаза (10%). Этот список показывает, что люди предпочитают комфорт и знание объекта, когда выбирают биометрическую технологию.
Профессор Джудит А. Марковитц консультант по биометрическим технологиям в Чикаго, среди его клиентов, такие компании как Motorola, VoiceVerified и West Corporation. По словам профессора Марковитца, первый шаг к пониманию данного вида биометрики это разграничение распознавания голоса и распознавание речи. Распознавание речи подразумевает способность системы обрабатывать то, что человек говорит, а распознавание голоса– это технология основана на индивидуальной физиологии голоса и его поведении.
Как работают системы распознавания голоса и речи
Применение технологии распознавания голоса возможно после создания цифровой модели человеческого голоса, которая будет служить резервным профилем или образцом. Слова и фразы будут разбиты на различные виды отдельных частот, собранные вместе, для характеристики уникальных речевых способностей отдельного человека. Для согласования, образцы хранятся в базе данных, как и другая биометрическая информация.
Такие системы либо зависят от текста сообщения, либо нет, и используются, например, для контроля доступом. В первом случае, слова или фразы выступают в качестве пароля, который сравнивается с образцом. Во втором случае не требуется произносить конкретные фразы, поскольку система анализирует уникальные характеристики голоса.
Большим плюсом систем распознавания речи является ее удобность для пользователей и относительно недорогая цена по сравнению с другими биометрическими функциями.
Не удивительно, что большинство приложений для распознавания речи используют телефон, для простых действий, таких как проведение банковских операций по телефону, смена пароля к счету и проверка счета, и все это производиться по телефону с полной защитой.
Практическое применение распознавания речи
Когда дело касается защиты физического доступа, технологию распознавания речи можно использовать для пропуска сотрудников на складе, с помощью портативных систем сбора голосовых данных, а также портативные системы удобно использовать, если сотрудники часто перемещаются из одной рабочей зоны в другую. В устройство распознавания речи встроен GPS, который помогает отслеживать перемещение охранников, чтобы убедиться в том, что они делают обход по заданному маршруту, и не полагаются на коллег, которые сделают это за них.
Профессор Марковитц выделил два примера использования потенциала распознавания речи для защиты доступа в Штатах. «В городе Балтимор было установлено систему при входе на пяти городских зданиях, для наблюдения за доступом штатных сотрудников в нерабочие часы. Эта система также использовалась для учета рабочего времени сотрудников. Система согласовывала регистрацию пользователя с настольным ПК. Когда ПК украли, то это стало проблемой».
Распознавание голоса также использовали, как часть многослойной системы защиты, которая контролировала пересечение границы в городе Скоуби, штат Монтана, пока ее не сняли после событий 11 сентября. «Из-за падения температуры, иногда до -51 градуса, не было возможности использовать другие типы биометрики. Но сегодня, никто и не думает об использовании распознавания голоса для доступа на охраняемую территорию, поскольку существует много других способов контролировать периметр, включая более быстрые способы, такие как распознавание отпечатков пальцев.
Другие проблемы связанные с распознаванием голоса
Распознавание голоса для доступа к системе не очень надежны. Многие проблемы влияют на точность таких систем. Сюда относится низкое качество образцов голоса, изменение голоса во время простуды и настроения, фоновой шум.
Другая критическая проблема связана с недостатком установленных международных стандартов. Необходим стандарт прикладного программного интерфейса (API) для снижения затрат, функциональная совместимость, синхронизация с поставщиками и другие аспекты. До сих пор правоохранительные органы, телекоммуникационное обслуживание и финансовая сфера в разных странах, используют различные системы распознавания речи, но стандарт API сделает их более удобными и пригодными для интеграции.
Источники:
http://yandex.ru/blog/company/72171
http://xakep.ru/2019/09/03/voice-recognition/
http://worldvision.com.ua/articles/ispolzovanie-sistem-raspoznavaniya-golosa-dlya-kontrolya-dostupom