Использование CUDA на примере приложения RealSpeaker в задаче распознавания речи
ООО «РеалСпикер Лаб» - резидент казанского Айти-парка и резидент инновационного центра Сколково – разрабатывает видео-расширение RealSpeaker, которое способно увеличить точность распознавания речи за счет дополнительного анализа движения губ пользователя. Осуществить тестирование пользовательского приложения было бы невозможно без использования технологии CUDA. О том, как работает RealSpeaker рассказал генеральный директор компании Осетров Виктор.
Современные системы аудио-распознавания речи, несмотря на последние достижения: перенос базы данных в «облако», улучшения по обработке шумов, увеличение языковой базы данных – не могут быть априори 100% точными. Главный недостаток существующих голосовых движков (Google Voice Search, Siri, DragonNaturallySpeaking, Windows Speech Recognition, CMU Sphinx и др.) заключается в том, что при накладывании речевые частоты друг на друга: уличные шумы, включенный ТВ, играет музыка, - точность распознавания речи будет ниже, чем при проведении распознавания речи в домашних условиях. Так как лабораторные условия для задач распознавания встречаются не часто, то поэтому такие устройства используются пользователями не так активно, как это могло бы быть.
Уже давно было замечено, что люди, которые имеют дефекты речи (глухонемые) в течение своей жизни способны развивать в себе способности чтения по губам. Не имея собственных навыков голосового произношения, они путем длительных тренировок и наблюдений учатся понимать, что сказал собеседник по движению его губ. Раз такое может сделать человек, то почему же не реализовать такую функцию для машины?
Согласно исследовательским данным, за счет данной возможности «анализа движения губ пользователя» можно определять около 20% слов. А если совместно анализировать звуковой поток и осуществлять видео распознавание, то вполне реально создать действительно качественный распознаватель речи.
Однако развитие аудиовизуальных систем распознавания речи сильно затормаживал тот факт, что для задач видео-распознавания лица, нахождения области губ, осуществления процесса видео-распознавания - требовалась видеокамера и дополнительные вычислительные мощности. Большой объем математических операций делал аудиовизуальные системы распознавания речи дорогими и ограничивал их использование. Создавались отдельные лабораторные стенды, но так и не был создан качественный продукт до настоящего времени.
Использование программно-аппаратной архитектуры CUDA позволяет значительно ускорить процесс обработки видео данных за счет перераспределения вычислений между CPU и GPU процессорами. Учитывая данное обстоятельство, казанская команда взялась за амбициозную задачу – реализовать пользовательское видео-приложение для увеличения точности аудио-распознавания речи.
Основываясь на последних технических веяниях, широкое использования технологии CUDA для задач видеообработки, мы решили провести тестирование нашей технологии на компьютерах со встроенной картой NVIDIA. Результаты получились замечательными: в зависимости от типа устройства, процесс обработки кадров в секунду на расширенных CPU и GPU картах выше в разы, по сравнению с CPU чипами. Причем чем современнее устройство от NVIDIA, тем выше производительность. Результаты представлены в таблице 1.
При разработке приложения RealSpeaker мы не стали создавать велосипед, а использовали множество открытых технологий, которые подработали под себя. Не видя смысла в создании распознавателя речи с нуля, компания осуществила интеграцию расширения видео-распознавания речи в существующие системы преобразования голоса в текст. Результат не заставил себя ждать – за счет реализации видео-расширения RealSpeaker точность распознавания речи возросла от 20 до 60% - в зависимости от артикуляции диктора.
Главное преимущество RealSpeaker заключается в том, что система осуществляет распознавание речи только в том случае, когда губы диктора движутся. Соответственно, RealSpeaker фильтрует посторонние шумы, которые попадают в микрофон, когда губы пользователя неподвижны. Этот эффект можно сравнить простым примером. Допустим, мы расположили слепого человека в шумной комнате и предложили ему распознавать речь. Так как звуков очень много, то очень скоро испытуемому станет сложно распознавать все подряд и погрешность в определении речи увеличится. Если у этого воображаемого слепого появляются глаза, и он видит свой объект исследования, его движение губ – распознавать речь ему намного легче.
Системы аудио-распознавания речи имеют ограничение в длине распознавания речи: 40-45 слов. Для того чтобы включить/выключить аудио-распознаватель речи необходимо нажать на специальную клавишу или сделать неестественно длинную паузу. Это очень неудобно, так как пользователю приходится всякий раз отвлекаться на устройство. К тому же если речевой запрос слишком большой: системам аудио-распознавания речи его сложно обрабатывать. В виду нестабильности Интернет-соединения, такие речевые запросы могут быть потеряны по разным причинам системой распознавания речи. Решение RealSpeaker способно автоматически разбить речь диктора на отдельные части, на основе параллельного анализа движения губ и частоты голоса пользователя. Такой процесс значительно ускоряет распознавание речи, делает его непрерывным, по-настоящему, даря пользователям hands-free эффект.
Сейчас компания ООО «РеалСпикер Лаб» реализовала тестовую десктоп-версию приложения RealSpeaker на ОС Windows 7. В данный момент технология интегрирована в Google Voice Search. Система поддерживает 5 языков: русский, английский (американский и британский диалект), французский, немецкий и китайский. Началась также разработка Android-версии технологии, которая будет реализована по принципу клиент-серверного приложения. Проект стал резидентом казанского Айти-парка и резидентом инновационного центра Сколково. Подана заявка на патент технологии в США. Нет сомнения, что в ближайшем будущем именно по такому сценарию будут развиваться речевые технологии и нам бы хотелось, чтобы именно RealSpeaker стал самым первым на этом пути.
Для справки:
CUDA (англ. Compute Unified Device Architecture) — разработанная компанией NVIDIA программно-аппаратная архитектура, позволяющая производить вычисления с использованием графических процессоров NVIDIA, поддерживающих технологию GPGPU (произвольных вычислений на видеокартах).