Преобразование речи в текст с помощью API распознавания речи

API распознавания речи — это стандартный веб-API, который позволяет преобразовывать речь из источника звука, такого как файл мультимедиа или микрофон устройства, в текст непосредственно из кода JavaScript веб-сайта или расширений браузера. В этой статье рассматривается использование API распознавания речи в сочетании с моделью распознавания речи на устройстве (или локальной системой), встроенной в Microsoft Edge.

Дополнительные сведения об API см. в разделе Web Speech API на сайте MDN.

Подробное содержание:

Доступность локальной модели распознавания речи

Модель локального распознавания речи доступна в Microsoft Edge Canary или Dev (версия 150.0.4076 или более поздняя). См. Станьте участником программы предварительной оценки Microsoft Edge.

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

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

  • Сниженная стоимость: Использование облачной службы распознавания не требует затрат.

  • Независимость сети: Помимо начальной загрузки модели, при использовании этого API для преобразования речи нет задержки сети. Этот API также можно использовать, когда устройство находится в автономном режиме.

  • Улучшенная конфиденциальность: Речевые данные, вводимые в модель, никогда не покидают устройство и не собираются для обучения моделей ИИ.

Доступность модели

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

Вы можете отслеживать загрузку модели, используя обещание, возвращаемое методом API install() распознавания речи. Проверьте, установлена ли уже локальная модель, ниже.

Включение локального распознавания речи в Microsoft Edge

Чтобы использовать локальную модель распознавания речи с API распознавания речи, необходимо включить эту функцию в Microsoft Edge Canary или Dev. Чтобы включить распознавание речи с использованием модели на устройстве:

  1. Убедитесь, что вы используете Microsoft Edge Canary или Dev (версия 150.0.4076 или более поздняя). См. Станьте участником программы предварительной оценки Microsoft Edge.

  2. В Microsoft Edge Canary или Dev откройте новую вкладку или окно и перейдите в edge://flagsраздел .

  3. В поле поиска в верхней части страницы введите " Распознавание речи с моделью устройства".

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

    Страница флагов браузера

См. рабочий пример

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

  1. Включите локальное распознавание речи в Microsoft Edge, как описано выше.

  2. В Microsoft Edge Canary или Dev откройте вкладку или окно и перейдите в песочницу API распознавания речи.

  3. На информационном баннере в верхней части проверьте состояние: изначально говорится, что API распознавания речи готов. Чтобы начать, нажмите кнопку "Пуск".

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

  5. В раскрывающемся списке "Источник звука " выберите источник звука для распознавания речи:

    • Выберите "Микрофон", чтобы использовать микрофон устройства в качестве источника звука.
    • Выберите "Файл", чтобы использовать звуковой или видеофайл с устройства в качестве источника звука.
  6. Если в качестве источника звука выбран "Файл ", отображается раздел "Файлы мультимедиа ". Нажмите кнопку "Выбрать файл ", а затем выберите звуковой или видеофайл на своем устройстве.

  7. Нажмите кнопку Пуск.

    Если вы еще не скачали локальную модель распознавания речи для выбранного языка, начнется скачивание, и информационный баннер с сообщением " Установка модели на устройстве для en-US...".

    Установка модели распознавания речи на устройстве

    После установки модели текстовая расшифровка отображается на странице:

    Преобразование речи в текст

  8. Чтобы остановить преобразование речи в текст, в любой момент нажмите кнопку "Стоп ".

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

См. также:

Использование API распознавания речи с локальным распознаванием на веб-сайте

В следующих разделах описывается, как использовать API SpeechRecognition с локальным распознаванием речи в коде веб-сайта. Дополнительные сведения о самом API см. в статье Web Speech API на сайте MDN.

Проверьте, поддерживается ли API, и создайте экземпляр объекта SpeechRecognition

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

if (!window.SpeechRecognition) {
  console.log("The SpeechRecognition API is not available in this browser.");
} else {
  console.log("The SpeechRecognition API is available.");
}

Если API поддерживается, создайте новый SpeechRecognition экземпляр, чтобы начать использовать API:

const recognition = new SpeechRecognition();

См. также:

Выберите язык ввода и согласитесь на локальное распознавание

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

recognition.lang = "en-US";
recognition.processLocally = true;

Для локального распознавания речи поддерживаются следующие языки ввода:

  • Английский (США)
  • Немецкий (de-DE)
  • Итальянский — (it-IT)
  • Португальский (pt-PT)
  • Испанский (es-ES)
  • Корейский (ko-KR)

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

Кроме того, continuous настройте параметры AND interimResults для true транскрибирования длинных аудиосеансов без остановки и получения промежуточных результатов:

recognition.continuous = true;
recognition.interimResults = true;

См. также:

Проверьте, установлена ли уже локальная модель

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

Если модель еще не установлена, запустите установку с помощью метода SpeechRecognition.install() и дождитесь завершения модели перед запуском распознавания:

async function ensureModelReady(lang) {
  // Check if the model is already available.
  const availability = await SpeechRecognition.available({
    langs: [lang],
    processLocally: true,
  });

  // If the model is already available, proceed to recognition.
  if (availability === "available") {
    return true;
  }

  // If the model is not available but can be downloaded,
  // trigger the installation and wait for it to complete
  // before proceeding to recognition.
  if (availability === "downloadable" || availability === "downloading") {
    const installed = await SpeechRecognition.install({
      langs: [lang],
      processLocally: true,
    });

    if (!installed) {
      throw new Error(`Failed to install local model for ${lang}.`);
    }

    return true;
  }

   return false;
}

Обещание, возвращаемое SpeechRecognition.install() пользователем, разрешается при успешной или неудачной установке.

См. также:

Запуск распознавания речи

После того, как вы убедились, что API и модель готовы, чтобы начать распознавание, используйте метод.start()

При вызове без параметра start() метод распознает звук с микрофона пользователя:

recognition.start();

Чтобы распознать звук из файла мультимедиа, а не из микрофона пользователя, передайте MediaStreamTrack экземпляр в качестве аргумента метода start() . Например, вы можете создать MediaStreamTrack экземпляр, MediaStreamDestinationNode создав экземпляр с помощью API WebAudio:

const audioContext = new AudioContext();
const mediaStreamDestination = audioContext.createMediaStreamDestination();
recognition.start(mediaStreamDestination.stream.getAudioTracks()[0]);

См. также:

Остановить распознавание явно и на стороне мультимедиа

Чтобы остановить распознавание, используйте метод:stop()

recognition.stop();

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

mediaElement.onended = () => recognition.stop();

См. также:

Отправка отзывов

Мы будем рады получить ваши отзывы о:

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

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

См. также

Корпорация Майкрософт:

МДН:

GitHub: