8.4 KiB
Речь в текст - Виртуальное IoT-устройство
В этой части урока вы напишете код для преобразования речи, записанной с вашего микрофона, в текст с использованием службы распознавания речи.
Преобразование речи в текст
На Windows, Linux и macOS можно использовать Python SDK службы распознавания речи для прослушивания микрофона и преобразования обнаруженной речи в текст. SDK будет непрерывно слушать, определять уровни звука и отправлять речь на преобразование в текст, когда уровень звука падает, например, в конце блока речи.
Задание - преобразование речи в текст
-
Создайте новое Python-приложение на вашем компьютере в папке
smart-timer
с одним файломapp.py
и виртуальной средой Python. -
Установите пакет Pip для службы распознавания речи. Убедитесь, что вы выполняете установку из терминала с активированной виртуальной средой.
pip install azure-cognitiveservices-speech
⚠️ Если вы получите следующую ошибку:
ERROR: Could not find a version that satisfies the requirement azure-cognitiveservices-speech (from versions: none) ERROR: No matching distribution found for azure-cognitiveservices-speech
Вам нужно будет обновить Pip. Сделайте это с помощью следующей команды, а затем попробуйте установить пакет снова:
pip install --upgrade pip
-
Добавьте следующие импорты в файл
app.py
:import requests import time from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer
Это импортирует некоторые классы, используемые для распознавания речи.
-
Добавьте следующий код для объявления конфигурации:
speech_api_key = '<key>' location = '<location>' language = '<language>' recognizer_config = SpeechConfig(subscription=speech_api_key, region=location, speech_recognition_language=language)
Замените
<key>
на ключ API для вашей службы распознавания речи. Замените<location>
на регион, который вы указали при создании ресурса службы распознавания речи.Замените
<language>
на имя локали языка, на котором вы будете говорить, например,en-GB
для английского илиzn-HK
для кантонского. Вы можете найти список поддерживаемых языков и их локалей в документации о поддержке языков и голосов на сайте Microsoft.Эта конфигурация затем используется для создания объекта
SpeechConfig
, который будет использоваться для настройки службы распознавания речи. -
Добавьте следующий код для создания распознавателя речи:
recognizer = SpeechRecognizer(speech_config=recognizer_config)
-
Распознаватель речи работает в фоновом потоке, прослушивая аудио и преобразуя обнаруженную речь в текст. Вы можете получить текст, используя функцию обратного вызова — функцию, которую вы определяете и передаете распознавателю. Каждый раз, когда обнаруживается речь, вызывается функция обратного вызова. Добавьте следующий код для определения функции обратного вызова и передачи её распознавателю, а также определите функцию для обработки текста, выводя его в консоль:
def process_text(text): print(text) def recognized(args): process_text(args.result.text) recognizer.recognized.connect(recognized)
-
Распознаватель начинает прослушивание только тогда, когда вы явно запускаете его. Добавьте следующий код для запуска распознавания. Это выполняется в фоновом режиме, поэтому вашему приложению также потребуется бесконечный цикл с паузами, чтобы приложение продолжало работать.
recognizer.start_continuous_recognition() while True: time.sleep(1)
-
Запустите это приложение. Говорите в микрофон, и преобразованный в текст аудио будет выводиться в консоль.
(.venv) ➜ smart-timer python3 app.py Hello world. Welcome to IoT for beginners.
Попробуйте разные типы предложений, а также предложения, где слова звучат одинаково, но имеют разные значения. Например, если вы говорите на английском, произнесите: "I want to buy two bananas and an apple too" (Я хочу купить два банана и одно яблоко тоже) и обратите внимание, как программа правильно использует "to", "two" и "too" в зависимости от контекста слова, а не только его звучания.
💁 Вы можете найти этот код в папке code-speech-to-text/virtual-iot-device.
😀 Ваше приложение для преобразования речи в текст успешно заработало!
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.