Краткое введение в концепции автоматического распознавания речи и способы их применения

Инструменты, использующие голосовые ресурсы, такие как Siri, Alexa и Google Voice, изменили то, как люди взаимодействуют со своими устройствами, присутствующими в их автомобилях, домах и на работе. Следовательно, этот рост также расширяет возможности анализа пользовательских данных.

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

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

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

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

Это вводная статья к большой и сложной теме.

Как алгоритмы распознавания речи обрабатывают аудиоданные (извлечение признаков)

Прежде всего, важно понять концепцию фонем. Фонемы, как определяет Кембриджский словарь:

одна из мельчайших единиц речи, отличающая одно слово от другого

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

В речи, адресованной Siri, такой как фраза «Какая завтра будет погода?», алгоритм должен сначала преобразовать эту волну во что-то понятное ему — например, письменный текст (чтобы использовать другие алгоритмы для «понимания» и ответьте на него, но не будем здесь углубляться).

Как работают алгоритмы распознавания речи

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

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

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

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

Как применять методы распознавания речи

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

  • Wit.ai: бесплатная служба обработки естественного языка с открытым исходным кодом, предоставляемая Meta. Этот инструмент имеет относительно высокое качество, являясь бесплатным (даже для бизнеса) сервисом. Среднее время расшифровки 10 секунд с помощью этого инструмента составляет 2,31 секунды.
  • Amazon Transcribe: платная услуга, предоставляемая AWS в своем облаке. Этот инструмент также имеет относительно высокое качество, но он дорогой (6,42 доллара США за час расшифровки). Среднее время расшифровки 10 секунд с помощью этого инструмента составляет 17,56 секунд.
  • Служба распознавания речи Azure: платная служба, предоставляемая Azure. Это недорогой облачный сервис — 1,13 доллара США в час транскрипции. Кроме того, это облако предоставляет бюджет для тех, кто впервые использует свою платформу для тестирования своих инструментов — возможность протестировать этот инструмент бесплатно в течение некоторого времени. Чтобы расшифровать 10 секунд, этому инструменту требуется около 2,14 секунды.
  • Google Cloud Speech API: платная услуга, предоставляемая Google Cloud Platform. Этот инструмент имеет отличное качество, но он самый дорогой (6,57 долларов США за час расшифровки). Это облако также предоставляет бесплатный уровень для тех, кто впервые пробует его, что позволяет бесплатно протестировать услугу. Чтобы расшифровать 10 секунд, этому инструменту требуется около 2,25 секунд.
  • Vosk API: это библиотека Python с открытым исходным кодом, которая содержит некоторые доступные статистические модели (вы также можете их заменить). Качество очень низкое (во многом зависит от модели, и я использовал португальский, который они предоставляют). Среднее время расшифровки 10 секунд аудио составило 0,59 секунды, но, поскольку он выполняется локально, во многом зависит от аппаратного обеспечения.

Кроме того, для каждого из этих инструментов/сервисов существует библиотека Python, а также библиотека, которая их объединяет: распознавание речи. Я обнаружил, что библиотека быстрее для понимания, но менее документирована, чем официальные библиотеки.

В правильном контексте все эти инструменты великолепны.

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

Вскоре я напишу о своем опыте применения этих инструментов и опишу, как измерить успешность алгоритма.

Я Алин, автор этой статьи. Найди меня здесь и здесь!