Содержание

Распознавание речи и голоса на Python

Вы когда-нибудь задумывались о том, как Google Assistant или Amazon Alexa распознает все, что вы говорите? Помимо огромного успеха на рынке систем распознавания, большая часть сотовых устройств имеет функцию распознавания речи через некоторые встроенные приложения или сторонние приложения.

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

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

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

Как работает распознавания речи?

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

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

Говоря о составляющих, первая из них – это речь. Она должна быть преобразована из звука в сигнал, который может проходить через микрофон и может быть преобразована в цифровые данные. Это делается с помощью аналого-цифрового преобразователя. После того, как данные оцифрованы, несколько моделей могут легко преобразовать звук в текст.

Современные распознаватели речи основаны на менее известной концепции Hidden Markov Model (HMM). Подход основан на предположениях, сформулированных для речевого сигнала, когда он сохраняется в течение короткого периода (скажем, пять миллисекунд), и его можно назвать стационарным процессом, то есть процессом, основанным на статистике, которая не меняется с течением времени.

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

Размеры отображаемого вектора довольно малы, всего 10, по сравнению с некоторыми точными системами, которые могут иметь размеры, достигающие 32 или более. Сгенерированный окончательный результат HMM принимает форму векторных последовательностей.

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

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

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

Пакеты распознавания речи

В цепочке PyPI существует несколько пакетов для распознавания речи. Вот некоторые из них:

  1. Assembly
  2. Apia
  3. SpeechRecognition
  4. Wit
  5. Watson-developer-cloud

Вышеуказанные пакеты, такие как apiai и wit, предлагают функцию обработки естественного языка. Эта встроенная функция помогает определить намерения говорящего и выходит за рамки обычного распознавания речи. Другие пакеты в основном ориентированы на преобразование речи в текст.

Из вышеперечисленных пакетов выделяется только один пакет – SpeechRecognition.

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

Библиотека SpeechRecognition ведет себя как обложка или оболочка для различных API, созданных исключительно для речи.

Он невероятно гибкий и маневренный. Одним из таких API является API Google Web Speech, который поддерживает жестко заданное распознавание речи по умолчанию.

Библиотека SpeechRecognition очень проста в использовании, а пакет легко импортировать как проект python. Также важно отметить, что этот пакет может не включать в себя все API, доступные сегодня. Таким образом, вам нужно точно определить, какой пакет вам нужен для создания распознавателя речи.

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

Установка SpeechRecognition

Пакет SpeechRecognition совместим с различными версиями языка Python, такими как 2.6, 2.7 и 3.3+. Также могут потребоваться другие установки, если ваша версия python устарела. Предполагая, что у вас есть версия Python 3. 3+ в вашей локальной системе, вы можете выполнить метод установки с терминала с помощью pip.

 
  $ pip install SpeechRecognition 

После установки вы должны проверить, правильно ли интерпретируется установка, используя следующий код, приведенный ниже.

 
 >>> import speech_recognition as sr 
>>> sr._version_'3.8.1' 

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

Класс распознавателя

Магия SpeechRecognition проявляется только в присутствии класса Recognizer. Основная цель Recognizer – распознавать речь вместе с вариантами чтения различных речей, а затем управлять функциями и проверять речь, исходящую от источника звука.

Чтобы создать распознаватель, вам нужно создать его экземпляр. Итак, введите приведенный ниже код в интерпретатор Python.

 
  >>> r=sr.Recognizer() 

Существуют различные методы создания экземпляров Recognizer, которые могут распознавать речь из источника звука с поддержкой API. Некоторые из них перечислены ниже.

 
recognize_bing(): Microsoft Bing Speech 
 
recognize_google(): Google Web Speech API 
 
recognize_google_cloud(): Google Cloud Speech - requires  
installation of the google-cloud-speech package 
 
recognize_houndify(): Houndify by SoundHound 
 
recognize_ibm(): IBM Speech to Text 
 
recognize_sphinx(): CMU Sphinx - requires installing PocketSphinx 
 
recognize_wit(): Wit.ai 

Из этих пакетов, пакет распознавания_sphinx() предназначен для работы в автономном режиме при использовании с CMU Sphinx Engine. Остальным пакетам для работы требуется подключение к Интернету.

Примечание: важно быть осторожным с ключом по умолчанию, предоставленным в SpeechRecognition. Он в основном используется для тестирования и в целях безопасности, и он может быть отозван Google. Таким образом, SpeechRecognition имеет интерфейс API, который может переводить эти ключи по умолчанию для осторожного использования.

Метод each_recognize _ *() может вызвать исключение с именем speech_recognition.RequestError exception. Это могло произойти из-за того, что API может быть недоступен из-за поврежденной установки. Для остальных методов, показанных выше, RequestError может быть сгенерирован, если достигнуты лимиты в рамках их квоты, или если имеются проблемы с сервером или подключением к Интернету. Может возникнуть проблема, которая выглядит примерно так.

 
 Traceback(most recent call last): 
  File "", line 1, in  
TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 

Работа с аудиофайлами

Перед тем как приступить к работе с пакетом SpeechRecognition в Python, вам сначала необходимо загрузить аудиофайл. SpeechRecognition упрощает работу с аудиофайлами, сохраняя их в том же каталоге интерпретатора Python, который вы используете в данный момент. Это делается с помощью класса AudioFile. Этот класс необходимо инициализировать и указать путь к аудиофайлу, чтобы диспетчер контекста предоставлял удобный интерфейс для чтения файлов и их содержимого.

Поддерживаемые типы файлов

Типы форматов файлов, которые поддерживает SpeechRecognition, указаны ниже:

  1. WAV: формат должен быть в PCM / LPCM
  2. AIFF
  3. AIFF-C
  4. FLAC: формат должен быть собственным FLAC

Если у вас Windows, Linux или macOS на базе x-86, работать с файлами FLAC проще. Помимо этих операционных систем, вам может потребоваться установить кодировщик FLAC, который даст доступ к инструменту командной строки.

Сбор данных с помощью record()

Функция record() используется для захвата данных из файла с помощью интерпретатора python в вашем файле. Например, имя файла – «harvard. wav», код интерпретатора Python для кодирования этого метода будет следующим.

 
  >>> hardvard = sr.AudioFile('harvard.wav') 
 >>> with harvard as source: 
         Audio = r.record(source) 

Этот код откроет диспетчер контекста для чтения содержимого файла и сохранит данные в экземпляре AudioFile, известном как источник. Затем метод record() запишет реальные данные из файла. Чтобы убедиться, что данные записаны, вы можете проверить это с помощью следующего кода.

 
  >>> type(audio) 
    

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

 
  >>> r.recognize_google(audio) 

Этот код будет транскрибировать все данные, присутствующие в файле, и записывать распознанный звук в текстовом формате.

Захват длительности и смещения сегмента

Если вы хотите записать в файл только определенный фрагмент речи, метод record() может сделать это, распознав ключевое слово duration, за которым следует аргумент, который останавливает речь через несколько секунд. Например, вам может потребоваться захватить первые 5 секунд речи из файла «harvard.wav»; вы можете сделать это, используя следующий метод, указанный ниже.

 
  >>> with harvard as source: 
          Audio = r.record(source, duration=5) 
 >> >r.recognize_google(audio) 

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

 
  >>> with harvard as source: 
. ..     audio1 = r.record(source, duration=4) 
...     audio2 = r.record(source, duration=4) 
... 
>>> r.recognize_google(audio1) 
'the stale smell of old beer lingers' 
 
>>> r.recognize_google(audio2) 
'it takes heat to bring out the odor a cold dip.' 

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

Кроме того, при указании метода record() вы даже можете установить конкретную начальную точку, используя аргумент через ключевое слово offset. Начальная точка представляет собой количество секунд от файла до начала записи. Таким образом, чтобы захватить вторую фразу из аудиофайла, вы можете выбрать 5 или 3 секунды в зависимости от ваших потребностей, используя метод ниже.

>>> with harvard as source: ... audio = r. record(source, offset=4, duration=3) ... >>> r.recognize_google(audio)

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

 
>>> with harvard as source: 
...     audio = r.record(source, offset=4.7, duration=2.8) 
... 
>>> r.recognize_google(audio) 

В приведенном выше фрагменте кода указано, что запись начинается через 4,7 секунды, и начальная фраза будет пропущена. Точно так же, когда запись закончится, захваченная фраза не будет соответствовать фазе начала.

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

Влияние шума на распознавание речи

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

Чтобы понять, как шум влияет на распознавание речи, вам необходимо загрузить файл с именем «jackhammer.wav» и убедиться, что он сохранен в рабочем каталоге интерпретатора. Предполагая, что в этом файле громко произносится фраза «JavaTpoint – лучший сайт обучения java», вам необходимо записать ее в фоновом режиме. Для этого рассмотрим метод ниже.

 
>>> jackhammer = sr.AudioFile('jackhammer.wav') 
>>> with jackhammer as source: 
...     audio = r.record(source) 
... 
>>> r.recognize_google(audio) 

Чтобы справиться с шумом, можно попробовать еще один метод после вышеуказанного шага – использовать метод adjust_for_ambient_noise() класса Recognizer.

 
>>> with jackhammer as source: 
. ..     r.adjust_for_ambient_noise(source) 
...     audio = r.record(source) 
... 
>>> r.recognize_google(audio) 

В приведенном выше фрагменте кода отсутствует начальный вывод, а вывод печатается без первого слова. Следовательно, когда метод record() захватывает звук, первая часть аудиофайла потребляется, а последующие данные захватываются. Метод adjust_for_ambient_noise() считывает первую секунду аудиофайла, а Recognizer калибрует уровень шума аудио.

Если вы хотите настроить временные рамки с помощью adjust_for_ambient_noise(), вы можете использовать ключевое слово duration во фрагменте кода, присвоив ему числовое значение в секундах. Если вы не присваиваете никакого значения, по умолчанию принимается одно значение, но рекомендуется уменьшить его до 0,5. Следующий фрагмент кода демонстрирует ту же технику.

 
>>> with jackhammer as source: 
...     r.adjust_for_ambient_noise(source, duration=0. 5) 
...     audio = r.record(source) 
... 
>>> r.recognize_google(audio) 

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

Поэтому вам, возможно, придется прибегнуть к другим методам предварительной обработки звука для решения такой проблемы. Для этого вы можете использовать программное обеспечение для редактирования аудио или пакет Python, например SciPy. Пакет может предварительно обработать аудиофайл и отфильтровать шум.

Кроме того, при работе с зашумленными файлами полезно использовать фактический ответ API, поскольку большинство API возвращают строки JSON с множеством транскрипций.

Точно так же метод распознавания_google() обязан доставить аналогичные зашифрованные файлы, если только он не принудительно доставляет полный ответ. Этот метод может быть практически реализован с использованием определенных аргументов и ключевых слов, таких как show_all, который возвращается для метода accept_google().

 
  >>> r.recognize_google(audio, show_all=True) 
{'alternative': [ 
  {'transcript': 'javatpoint best is the programming site'},  
  {'transcript': 'the javatpoint site is best programming'},  
  {'transcript': 'javatpoint programming is the best site'}, 
  {'transcript': 'the programming is javatpoint best site'},  
  {'transcript': 'best is the programming site javatpoint'},  
], 'final': True} 

В приведенном выше фрагменте кода метод accept_google() возвращает словарь с альтернативным ключом, который указывает на различные транскрипции, показанные выше. Хотя структура ответа может иметь разные формы из-за различий от API к API, она в основном используется для отладки.

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

Тренировка с микрофонным входом

Вы можете получить доступ к своему микрофону с помощью пакета SpeechRecognizer, установив пакет с именем PyAudio. Для этого сохраните текущие изменения и закройте интерпретатор. Затем установите PyAudio с помощью того же процесса, что и для SpeechRecognizer.

 
$ pip install pyaudio 

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

 
$ python -m speech_recognizer 

После этого шага вам необходимо убедиться, что ваш микрофон по умолчанию включен и не приглушен. Если вы не столкнулись с какими-либо проблемами при установке и тестировании, вы должны увидеть что-то подобное на терминале.

 
A moment of silence, please? 
Set minimum energy threshold to 600.4452854381937 
Say something! 

Попробуйте поиграть, опробовав микрофон и проверив, как пакет SpeechRecognizer расшифровывает вашу речь.

Класс микрофона

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

 
>>> import speech_recognizer as sr 
>>> r.=sr.Recognizer() 

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

 
>>> mic = sr.Microphone() 

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

 
>>> sr.Microphone. list_microphone_names() 
['HDA Intel PCH: ALC272 Analog(hw:0,0)', 
 'HDA Intel PCH: HDMI 0(hw:0,3)', 
 'sysdefault', 
 'front', 
 'surround40', 
 'surround51', 
 'surround71', 
 'hdmi', 
 'pulse', 
 'dmix',  
 'default'] 

Индекс устройства, определенный в приведенном выше коде, известен как индекс, содержащий список доступных имен микрофонов в системе. Например, в приведенном выше выводе микрофон с названием «передний» расположен в списке под индексом 3. Это можно сделать с помощью метода, приведенного ниже.

 
 >>> mic = sr.Microphone(device_index=3) 

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

Ввод микрофона с помощью listen()

Другой метод, который вы здесь изучите, – это метод listen(), используемый для захвата ввода с микрофона. Поскольку вы уже создали экземпляр микрофона, самое время сделать ввод.

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

 
  >>> with mic as source: 
...     audio = r.listen(source) 
... 

После того, как приведенный выше код будет выполнен с блоком, вы должны попробовать что-то сказать в микрофон и подождать некоторое время. Через некоторое время интерпретатор может предложить отобразить. Как только вы увидите “>>>” в качестве возвращенного приглашения, это означает, что распознаватель сможет распознать все, что вы говорите.

Если Recognizer не возвращает подсказку, возможно, слышен некоторый внешний шум. Вы можете остановить это, нажав Ctrl + C, чтобы запросить ответ.

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

 
  >>> with mic as source: 
...     r.adjust_for_ambient_noise(source) 
...     audio = r.listen(source) 
... 

При запуске кода подождите несколько секунд, чтобы метод adjust_for_ambient Noise() выполнил свои задачи. После того, как код скомпилирован и запущен, попробуйте сказать что-нибудь в микрофон и подождите, пока переводчик распознает речь. Если он распознает и возвращает приглашение, значит, он работает нормально.

Вы также можете использовать ключевое слово duration и попытаться использовать его снова для получения определенного кадра речи, которую хотите распознать. Между тем, документация SpeechRecognizer рекомендует использовать ключевое слово duration, если оно имеет продолжительность 0,5 или меньше.

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

Нераспознаваемая речь

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

 
  Traceback(most recent call last): 
  File "", line 1, in  
  File  
 
"/home/david/real_python/speech_recognition_primer/venv/lib/pyth 
on3.5/site-packages/speech_recognition/__init__.py", line 858, in recognize_google 
if not isinstance(actual_result, dict) or  
len(actual_result. get("alternative", [])) == 0: raise  
UnknownValueError() 
speech_recognition.UnknownValueError 

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

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

Резюме

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

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

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

Михаил Русаков

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Еще для изучения:

что это такое, как работает технология, где применяется

Виртуальная АТС Маркетинговые технологии Омниканальный контакт-центр Дополнительные сервисы

Виртуальная АТС Подробнее

Сервисы IP-телефония Корпоративный мессенджер Унифицированные коммуникации Контроль качества Мобильный личный кабинет Все возможности АТС МангоМобайл

Интеграции API Интеграция с CRM Интеграция с LDAP SIP Trunk SIP UAC Все интеграции

Решения для клиентов Российские решения для бизнеса Гибридная АТС IP-Телефония Телефонизация офиса Подключение номеров Удаленная работа Объединение филиалов SIP Оборудование Софтфоны Все решения

Входящие звонки Голосовое меню Голосовой бот IVR Алгоритмы распределения Автоинформатор Автосекретарь Софтфоны

Исходящие звонки Автоперезвон по пропущенным Виджет заказа обратного звонка Исходящий обзвон SMS-рассылки

Контроль и отчетность Запись разговоров Речевая аналитика Бизнес-аналитика Аналитика обслуживания Роли и права доступа

Как подключить Стоимость Поддержка Все возможности

Маркетинговые технологии Подробнее

Сервисы Коллтрекинг Email-трекинг MANGO OFFICE BI

Интеграции Все интеграции

Клиентам Решения Энциклопедия маркетолога Глоссарий Решения для крупных клиентов

Маркетинговая аналитика Сквозная аналитика Мультиканальная аналитика Маркетинговые дашборды Окупаемость инвестиций Все отчеты

Автоматизация маркетинга Робот-аналитик Робот-маркетолог

Управление звонками Телефония для коллтрекинга Речевая аналитика Мультирегиональность Номера для бизнеса

Как подключить Стоимость Поддержка Все возможности

Омниканальный контакт-центр Подробнее

Омниканальная платформа Digital каналы (Vk, FB, Viber, Telegram, WhatsApp)

Управление персоналом Рабочее место сотрудника Контроль и мониторинг (Dashboard — Live) Совместная работа (Collaboration, Video)

Workforce Optimization Планирование рабочей нагрузки (WFM) Управление качеством (QM) Управление производительностью (Coaching, Gamification)

CRM Сбор клиентской базы Управление сделками Скрипты разговоров

Интеллектуальные решения Голосовой робот (Virtual asisstant) Речевая аналитика (Speech analytics) Чат-бот (Chat-bot)

Как подключить Стоимость Поддержка Все возможности

Дополнительные сервисы

Речевая аналитика

Робот-маркетолог

Сделки

Контроль качества

Wallboard

Виджеты (Заказ обратного звонка, соцсети, WhatsApp)

Mango Talker

Расширенное клиентское обслуживание

Облачное распознавание речи | Решения для преобразования голоса в текст

Узнайте о преимуществах облачного распознавания речи по сравнению с настольным распознаванием речи

Облачное распознавание речи по сравнению с настольным

МОБИЛЬНОСТЬ И ГИБКОСТЬ

используйте его где угодно! Вы не ограничены количеством компьютеров, на которых вы можете получить доступ к облачному программному обеспечению для распознавания речи. Это само по себе создает ценность по сравнению с лицензионным программным обеспечением для настольных ПК, где вы ограничены 4 компьютерами. Не говоря уже о длительном процессе установки лицензионного программного обеспечения для распознавания речи 9.0003

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

ИДЕАЛЬНАЯ ИНФОРМАЦИЯ

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

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

ПОДДЕРЖКА И ОБСЛУЖИВАНИЕ

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

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

Облачные решения:

Ошибка Liquid (sections/pf-31e8ab58 строка 133): в форме продукта должен быть указан продукт

Dragon Professional Anywhere

40 долларов США в месяц на основе того же настольного программного обеспечения, которое вы уже знаете и любите. Теперь с гибкостью и мобильностью облака. Установите DPA на столько компьютеров, сколько хотите, и ваши настройки будут следовать за вами через вашу подписку. Также включено известное мобильное приложение Dragon Anywhere Mobile для смартфонов и планшетов. Войдите в систему через свой iPad и создавайте документы с той же точностью распознавания, что и DPA на вашем компьютере.

Узнать больше

Dragon Legal Anywhere

50 долларов США в месяц

Dragon Legal Anywhere — это новая облачная версия того же программного обеспечения для настольных компьютеров, которое вы уже знаете и любите. Теперь с гибкостью и мобильностью облака. Установите DLA на любое количество компьютеров, и ваши настройки будут следовать за вами по подписке. Также включено известное мобильное приложение Dragon Anywhere Mobile для смартфонов и планшетов. Войдите в систему через свой iPad и создавайте документы с той же точностью распознавания, что и DLA на вашем компьютере.

Подробнее

Dragon Law Enforcement Anywhere

40 долларов США в месяц

Dragon Professional Anywhere для правоохранительных органов — это новый облачный вариант, основанный на том же программном обеспечении для настольных компьютеров, которое вы уже знаете и любите. Теперь с гибкостью и мобильностью облака. Установите DPA на столько компьютеров, сколько хотите, и ваши настройки будут следовать за вами через вашу подписку. Также включено известное мобильное приложение Dragon Anywhere Mobile для смартфонов и планшетов. Войдите в систему через свой iPad и создавайте документы с той же точностью распознавания, что и DPA на вашем компьютере.

Узнать больше

Топ-10 систем распознавания речи/преобразования речи в текст с открытым исходным кодом

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

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

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

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

Содержание

Что такое библиотека/система распознавания речи?

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

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

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

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

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

Что такое библиотека распознавания речи с открытым исходным кодом?

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

Microsoft и IBM, например, имеют свои собственные наборы инструментов для распознавания речи, которые они предлагают разработчикам, но они не имеют открытого исходного кода. Просто потому, что они не лицензируются ни одной из лицензий с открытым исходным кодом на рынке.

Каковы преимущества использования распознавания речи с открытым исходным кодом?

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

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

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

Лучшие системы распознавания речи с открытым исходным кодом

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

1. Проект DeepSpeech

Этот проект создан Mozilla, организацией, стоящей за браузером Firefox.

Это 100% бесплатная библиотека преобразования речи в текст с открытым исходным кодом, которая также использует технологию машинного обучения с использованием платформы TensorFlow для выполнения своей миссии. Другими словами, вы можете использовать его для самостоятельного создания моделей обучения, чтобы улучшить базовую технологию преобразования речи в текст и получить лучшие результаты или даже перенести ее на другие языки, если хотите.

Вы также можете легко интегрировать его в другие проекты машинного обучения, которые вы используете в TensorFlow. К сожалению, похоже, что в настоящее время проект по умолчанию поддерживает только английский язык. Он также доступен на многих языках, таких как Python (3. 6).

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

Вы можете посетить его домашнюю страницу Project DeepSpeech, чтобы узнать больше.

2. Kaldi

Kaldi — это программное обеспечение для распознавания речи с открытым исходным кодом, написанное на C++ и выпущенное под публичной лицензией Apache.

Работает на Windows, macOS и Linux. Его разработка началась еще в 2009 году. Основными преимуществами Kaldi по сравнению с некоторыми другими программами для распознавания речи являются его расширяемость и модульность: сообщество предоставляет множество сторонних модулей, которые вы можете использовать для своих задач.

Kaldi также поддерживает глубокие нейронные сети и предлагает отличную документацию на своем веб-сайте. Хотя код в основном написан на C++, он «обернут» скриптами Bash и Python.

Итак, если вы ищете только базовое использование преобразования речи в текст, вам будет легко сделать это с помощью Python или Bash. Вы также можете проверить Kaldi Active Grammar, который представляет собой предварительно созданный движок Python с моделями, обученными английскому языку, уже готовыми к использованию.

Узнайте больше о распознавании речи Kaldi на официальном сайте.

3. Julius

Вероятно, одно из старейших программ распознавания речи, так как его разработка началась в 1991 в Университете Киото, а затем в 2005 году право собственности на него было передано как независимый проект. Многие приложения с открытым исходным кодом используют его в качестве своего движка (вспомните KDE Simon).

Основные функции Julius включают в себя способность выполнять процессы STT в реальном времени, низкое использование памяти (менее 64 МБ для 20000 слов), способность производить вывод N-best/Word-graph, способность работать в качестве серверного устройства и многое другое. более.

Это программное обеспечение было создано в основном для академических и исследовательских целей. Он написан на C и работает на Linux, Windows, macOS и даже на Android (на смартфонах). В настоящее время он поддерживает только английский и японский языки.

Программное обеспечение, вероятно, можно легко установить, используя репозиторий вашего дистрибутива Linux; Просто найдите пакет julius в вашем менеджере пакетов.

Вы можете получить доступ к исходному коду Julius из GitHub.

4. Фонарик ASR (ранее Wav2Letter++)

Если вы ищете что-то современное, то это можно включить.

Фонарик ASR — это программное обеспечение для распознавания речи с открытым исходным кодом, выпущенное исследовательской группой искусственного интеллекта Facebook. Код представляет собой код C++, выпущенный под лицензией MIT.

Facebook описывал свою библиотеку как «самую быструю современную систему распознавания речи из доступных» до 2018 года.

Концепции, на которых построен этот инструмент, делают его оптимизированным для производительности по умолчанию. Библиотека машинного обучения Facebook Flashlight используется в качестве основного ядра Flashlight ASR. Программное обеспечение требует, чтобы вы сначала построили модель обучения для желаемого языка, прежде чем сможете запустить процесс распознавания речи.

Нет встроенной поддержки любого языка (включая английский). Это просто управляемый машинным обучением инструмент для преобразования речи в текст.

Вы можете узнать больше об этом по следующей ссылке.

5. PaddleSpeech (ранее DeepSpeech3)

Исследователи из китайского гиганта Baidu также работают над собственным набором инструментов для распознавания речи под названием PaddleSpeech.

Речевой инструментарий основан на платформе глубокого обучения PaddlePaddle и предоставляет множество функций, таких как:

  • Поддержка преобразования речи в текст.
  • Поддержка преобразования текста в речь.
  • Передовая производительность в транскрипции аудио, он даже получил награду NAACL2022 Best Demo Award,
  • Поддержка многих больших языковых моделей (LLM), в основном для английского и китайского языков.

Движок можно обучить на любой модели и на любом языке по вашему желанию.

Исходный код PaddleSpeech написан на Python, поэтому вам будет легко с ним ознакомиться, если вы используете этот язык.

6. OpenSeq2Seq

Разработан NVIDIA для обучения моделей последовательностей.

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

По состоянию на 2021 год проект находится в архиве; его все еще можно использовать, но похоже, что он больше не находится в активной разработке.

Посетите страницу документации по распознаванию речи для получения дополнительной информации или посетите официальную страницу с исходным кодом.

7. Vosk

Одна из новейших систем распознавания речи с открытым исходным кодом, так как ее разработка только началась в 2020 году. , немецкий, французский, турецкий…) с портативными моделями размером 50 МБ, уже доступными для пользователей (есть и другие модели большего размера до 1,4 ГБ, если вам нужно).

Он также работает на устройствах Raspberry Pi, iOS и Android и предоставляет потоковый API, который позволяет вам подключаться к нему для выполнения задач по распознаванию речи в Интернете. У Vosk есть привязки для Java, Python, JavaScript, C# и NodeJS.

Узнайте больше о Vosk на официальном сайте.

8. Athena

Механизм сквозного распознавания речи, реализующий ASR.

Написано на Python и распространяется под лицензией Apache 2.0. Поддерживает неконтролируемое предварительное обучение и обучение с использованием нескольких графических процессоров на одном или нескольких компьютерах. Построен на основе TensorFlow.

Имеется большая модель для английского и китайского языков.

Посетите исходный код Athena.

9. ESPnet

Написано на Python поверх PyTorch.

Также поддерживает сквозной ASR. Он соответствует стилю Kaldi для обработки данных, поэтому было бы проще перейти с него на ESPnet. Основным маркетинговым преимуществом ESPnet является высочайшая производительность, которую он обеспечивает во многих тестах, а также поддержка других задач обработки языка, таких как преобразование речи в текст (STT), машинный перевод (MT) и перевод речи (ST). .

Под лицензией Apache 2.0.

Вы можете получить доступ к ESPnet по следующей ссылке.

10. Whisper

Новейший набор инструментов для распознавания речи в семействе, разработанный известной компанией OpenAI (той же компанией, что и ChatGPT).

Основным маркетинговым преимуществом Whisper является то, что он не специализируется на наборе обучающих наборов данных только для определенных языков; вместо этого его можно использовать с любой подходящей моделью и для любого языка. Он был обучен на 680 тысячах часов аудиофайлов, треть из которых были наборами данных не на английском языке.

Поддерживает преобразование речи в текст, преобразование текста в речь и перевод речи. И компания утверждает, что ее инструментарий имеет на 50% меньше ошибок в выводе по сравнению с другими инструментами на рынке.

Узнайте больше о Whisper на официальном сайте.

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

Если вы создаете небольшое приложение, которое хотите, чтобы его можно было везде переносить, то Vosk — ваш лучший вариант, так как он написан на Python, работает на iOS, Android и Raspberry pi и поддерживает до 10 языков. Он также предоставляет огромный набор обучающих данных, если он вам понадобится, и меньший для портативных приложений.

Если же вы хотите обучать и создавать свои собственные модели для выполнения более сложных задач, то любой из PaddleSpeech, Whisper и Athena должно быть более чем достаточно для ваших нужд, так как они являются самыми современными -современные наборы инструментов.

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

Традиционно Юлий и Калди также очень часто цитируются в академической литературе.

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

Заключение

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

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

Если у вас есть другие рекомендации по этому списку или комментарии в целом, мы будем рады услышать их ниже!

Открытый исходный код для разработчиков

FOSS Post Team

FOSS Post — это высококачественный онлайн-журнал о Linux и программном обеспечении с открытым исходным кодом. С командой профессиональных писателей со всего мира мы представляем вам последние статьи, аналитические материалы и обзоры, связанные с открытым исходным кодом.

Статьи, опубликованные с помощью этой учетной записи, написаны совместными усилиями авторов. Вы можете написать нам по адресу [email protected]

Прежде чем ты уйдешь…

FOSS Post уже около 7 лет предоставляет высококачественный контент о программном обеспечении с открытым исходным кодом и Linux. Весь наш контент бесплатен, поэтому вы можете наслаждаться им в любое время. Тем не менее, подумайте о том, чтобы купить нам чашку кофе, присоединившись к нашей кампании на Patreon или сделав единовременное пожертвование, чтобы поддержать наши усилия!

Вы знали?

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