Распознавание речи - Сравнение популярных сервисов на английском и немецком языках.

С развитием робототехники и голосовых сервисов автоматическое распознавание речи (ASR) или преобразование речи в текст (STT) становится как никогда важным. Его можно использовать для разговора с чат-ботом или роботом, а также для автоматической расшифровки разговоров или сцен из фильмов. В целом, это не совсем новая область, но, мягко говоря, сложная.

Концепция распознавания речи восходит к 60-м годам, но для бельгийца все началось в конце 80-х, когда печально известная компания Lernout & Hauspie обосновалась в бельгийском городе Ипр. В течение 15 лет они разработали передовые технологии и подняли сферу распознавания и синтеза речи на новый уровень. В 1999 году они имели удовольствие открыть технологический кампус в Ипре, названный Языковой долиной Фландрии, созданный по образцу Кремниевой долины. К сожалению, из-за юридических проблем Lernout & Hauspie обанкротилась в 2001 году. Именно тогда американская компания Scansoft, ныне известная как Nuance, взяла на себя их технологический отдел.

Сегодня Nuance известна как второе место среди промышленных и медицинских служб распознавания речи. Тем не менее, все больше и больше компаний, таких как Google, Apple, Amazon и IBM, догоняют сервисы, ориентированные в основном на потребителей и рынок B2B. Поскольку мне было любопытно узнать, как службы разных компаний обрабатывают распознавание речи, я протестировал несколько из них и провел сравнение как для английского, так и для голландского языков.

Услуги

Несмотря на то, что существует множество платформ, предоставляющих услуги распознавания речи, мы сравним три (в настоящее время) самых популярных и легкодоступных услуги ASR.

Всем известная компания, специализирующаяся на переводе, также предоставляет услуги распознавания и синтеза речи. Хотя Google Speech API все еще находится в бета-версии, он предоставляет огромное количество 40 различных языков для распознавания речи. Они также предоставляют хорошую и структурированную документацию и предлагают очень легко развертываемые SDK для своих услуг.

Как упоминалось ранее, American Nuance - первоклассная компания в области распознавания и синтеза речи. Выступая с уже огромным количеством отраслевых решений, они недавно запустили Dragon Drive, который уже реализован в некоторых автомобилях BMW. Однако мы используем службу Nuance Mix. Платформа, запущенная в конце 2015 года, представляет собой решение для Интернета вещей и разработчиков для их речевых сервисов, в настоящее время предоставляя более 40 языков для преобразования речи в текст.

Первоначально известный как служба искусственного интеллекта IBM, победившая в Jeopardy, Watson приступила к разработке коммерческих приложений в начале 2013 года. С развитием облачных технологий и Интернета вещей IBM Bluemix была запущена в качестве платформы для всех связанных служб. . Хотя возможности анализа речи были добавлены только в начале 2015 года, ранние исследования ASR в IBM начались еще в 60-х годах. В настоящее время службы преобразования речи в текст Watson обеспечивают транскрипцию на 9 различных языках, за исключением голландского.

Данные

Поскольку целью является сравнение ранее упомянутых платформ ASR, настраивается общий метод для тестирования различных аспектов служб анализа звука. Сначала выбирается 3–4-минутный видеоролик из фильма или телешоу на предпочтительном для анализа языке. Затем звук разбивается на несколько частей, чтобы каждую часть можно было анализировать отдельно. Наконец, для сравнения измеряются текстовый вывод и задержка ответов. Для реализации служб анализа звука Python использовался для трафика к конечным точкам HTTP и от них, а также для измерения задержки.

Важно отметить разницу между анализом отдельных аудиофайлов - a.k.a. что мы будем делать - и аудиопотоки. С аудиопотоками анализ речи в текст, как правило, происходит «на лету», поскольку он должен выполняться в режиме реального времени, а будущие данные пока недоступны. Однако, когда сервису необходимо проанализировать один аудиофайл, он должен найти компромисс между точностью и задержкой. Этот компромисс станет очень ясным по результатам в дальнейшем.

Запрос

Для сравнения важно, чтобы для каждой услуги использовались одни и те же входные данные, чтобы можно было добиться честного результата. Это делается путем проверки того, что каждая служба поддерживает заданные входные данные. На практике это означает взять звук из выбранной сцены, передискретизировать его до 16 кГц и преобразовать его со стерео в монофонический звук.

После этого аудиофрагмент разбивается на несколько частей, так как не все сервисы могут анализировать аудиоданные продолжительностью 3–4 минуты. В начале аудиофайла разделение выполняется после одного предложения, так что службы ASR имеют более высокую вероятность достижения хороших результатов. Однако в конце аудиофайла используются более длинные разрезы, чтобы сделать анализ более сложным.

Ответ

Когда сервис готов проанализировать отправленный аудиофайл, он вернет определенный ответ. Это может быть либо результат преобразования речи в текст, либо ошибочный ответ. В случае ошибочного ответа служба могла быть не в состоянии идентифицировать какую-либо речь из данного аудиофайла, или мог произойти тайм-аут.

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

Сравнение с en_US (англ.)

Сначала мы сравним сцену фильма на английском языке, взятую из отмеченного наградами фильма Волк с Уолл-стрит. Это сцена, в которой Джордан (Леонардо ДиКаприо) произносит выдающуюся мотивационную речь для своих сотрудников. Сложность этого фрагмента фильма заключается в том, что, хотя большая часть речи очень понятна, есть промежуточные части, где происходит крик, а слова скорее кричат, чем произносятся.

Аудио файл

Выбранная сцена фильма представляет собой аудиофайл длительностью 3 с половиной минуты, который разделен на 21 несколько аудиофрагментов, как показано ниже. Сначала разбиение происходит на небольших паузах, что делает первые аудиофрагменты довольно маленькими. Впоследствии используются более длинные сокращения, чтобы убедиться, что упомянутые службы ASR протестированы как на коротких, так и на длинных транскрипциях.

Параллельное сравнение

Если бы я был ленив, результаты можно было бы отобразить в таблице с текстовым выводом и некоторыми статистическими сравнительными измерениями. Но почему бы не сделать его немного веселее? В следующем видео показано параллельное сравнение трех упомянутых служб ASR, показывающее их текстовый вывод в данный момент сцены и измеренную задержку для получения этого вывода. Внимание, спойлер, некоторые записи могут оказаться забавными ...

Полученные результаты

Даже на первый взгляд, разница между этими тремя сервисами очевидна. Если посмотреть на более короткие сокращения, у Google Speech API есть моменты, когда достигается хороший результат, но в основном за счет высокой задержки. Watson STT предлагает противоположный взгляд на это, имея очень низкую задержку за счет плохой точности прогнозирования. Из этих трех сервисов Nuance Mix выходит победителем, имея как довольно низкую задержку, так и очень высокую точность прогнозирования.

Это становится еще более очевидным, если посмотреть на более длинные разрезы. Речевые сервисы Google, хотя они все еще находятся в стадии бета-тестирования, занимают уйму времени, чтобы практически ничего не предложить взамен. Сервисы Watson по-прежнему работают в направлении малой задержки, но дают лишь небольшую часть желаемых результатов. Однако Nuance в целом может обеспечить высокую точность прогнозирования при приемлемом уровне задержки, учитывая длину входных данных.

Таким образом, мы можем однозначно заключить, что для этого фрагмента фильма и между этими сервисами Nuance Mix - безусловно, лучший вариант.

Сравнение с nl_NL (голландский)

Хотя это не самый распространенный язык, я также хотел проанализировать, как службы будут работать на моем родном языке. К сожалению, это означало, что Watson уже пришлось сдаться, поскольку на данный момент он не поддерживает голландский STT-анализ. Однако нам осталось сравнить еще два сервиса.

Чтобы было немного сложнее, была взята сцена из популярного бельгийского телешоу под названием De Ideale Wereld, которое не всегда включает наиболее правильную, но все же понятную лексику голландского языка.

Аудио файл

Анализируемая сцена занимает чуть более 3 с половиной минут и в общей сложности разделена на 29 частей. Как и в предыдущем сравнении, сокращения обычно короткие в начале и более длинные в конце аудиофайла.

Параллельное сравнение

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

Полученные результаты

Google Speech API, как и Nuance Mix, дает неплохие результаты при воспроизведении коротких аудиофрагментов. Однако большая разница между обеими службами заключается в том, что в среднем Google Speech API имеет примерно вдвое большую задержку, чем анализ с использованием Nuance Mix. Эта огромная разница в задержке сохраняется на более длинных фрагментах, поскольку Google Speech API даже не дает никаких результатов для определенных фрагментов. Хотя Nuance Mix также не учитывает некоторые части текста, я думаю, что его результаты весьма примечательны, учитывая тот факт, что в более длинных аудиофрагментах происходит что-то вроде хаотичного разговора с использованием слов, которые не всегда можно найти в голландском словаре.

Заключение

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

При взгляде на сервис Watson STT становится очевидным, что IBM стремится к более быстрому обслуживанию, жертвуя точностью за меньшую задержку. Это сильно влияет на результаты в перспективе для других служб, хотя есть уверенность в том, что ответ будет доставлен в короткие сроки. Жалко, что голландский язык пока недоступен, но в ближайшее время он должен быть добавлен.

Несмотря на то, что Google Speech API все еще находится в стадии бета-тестирования, он производит довольно замечательные транскрипции для коротких аудиофрагментов за счет высокой задержки. Однако в сравнении с английским и голландским языками он не может анализировать более длинные звуковые фрагменты, хотя время анализа довольно велико по сравнению с другими сервисами. Надеюсь, это будет решено в выпуске.

Основываясь на бельгийских технологиях, Nuance является настоящим победителем в этом сравнении. Он может предоставлять исключительно точные результаты в очень приемлемые сроки. В обоих сравнениях видно, что за годы работы Nuance накопила наибольший опыт в области анализа речи.

В целом, было весело проводить сравнение этих трех сервисов, и я был действительно удивлен результатами, полученными сервисами Nuance. Похоже, что на данный момент выбор службы очень зависит от приложения, в основном склоняясь к компромиссу между задержкой и точностью.