# Перетворення мови в текст - Віртуальний IoT-пристрій У цій частині уроку ви напишете код для перетворення мови, захопленої вашим мікрофоном, у текст за допомогою служби розпізнавання мови. ## Перетворення мови в текст На Windows, Linux і macOS можна використовувати Python SDK для служби розпізнавання мови, щоб слухати ваш мікрофон і перетворювати будь-яку виявлену мову в текст. Програма буде слухати безперервно, визначаючи рівні звуку, і надсилати мову для перетворення в текст, коли рівень звуку знижується, наприклад, наприкінці блоку мовлення. ### Завдання - перетворення мови в текст 1. Створіть новий Python-додаток на вашому комп'ютері в папці `smart-timer` з одним файлом під назвою `app.py` і віртуальним середовищем Python. 1. Встановіть пакет Pip для служби розпізнавання мови. Переконайтеся, що ви встановлюєте його з терміналу, у якому активоване віртуальне середовище. ```sh pip install azure-cognitiveservices-speech ``` > ⚠️ Якщо ви отримаєте таку помилку: > > ```output > 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. Зробіть це за допомогою наступної команди, а потім спробуйте встановити пакет знову: > > ```sh > pip install --upgrade pip > ``` 1. Додайте наступні імпорти до файлу `app.py`: ```python import requests import time from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer ``` Це імпортує деякі класи, які використовуються для розпізнавання мови. 1. Додайте наступний код для оголошення конфігурації: ```python speech_api_key = '' location = '' language = '' recognizer_config = SpeechConfig(subscription=speech_api_key, region=location, speech_recognition_language=language) ``` Замініть `` на API-ключ вашої служби розпізнавання мови. Замініть `` на розташування, яке ви використовували під час створення ресурсу служби розпізнавання мови. Замініть `` на назву локалі мови, якою ви будете говорити, наприклад, `en-GB` для англійської або `zn-HK` для кантонської. Ви можете знайти список підтримуваних мов і їхніх назв локалей у [документації про підтримку мов і голосів на Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/speech-service/language-support?WT.mc_id=academic-17441-jabenn#speech-to-text). Ця конфігурація використовується для створення об'єкта `SpeechConfig`, який буде налаштовувати службу розпізнавання мови. 1. Додайте наступний код для створення розпізнавача мови: ```python recognizer = SpeechRecognizer(speech_config=recognizer_config) ``` 1. Розпізнавач мови працює у фоновому потоці, слухаючи аудіо і перетворюючи будь-яку мову в текст. Ви можете отримати текст за допомогою функції зворотного виклику - функції, яку ви визначаєте і передаєте розпізнавачу. Кожного разу, коли виявляється мова, викликається зворотний виклик. Додайте наступний код для визначення зворотного виклику, передайте цей зворотний виклик розпізнавачу, а також визначте функцію для обробки тексту, записуючи його в консоль: ```python def process_text(text): print(text) def recognized(args): process_text(args.result.text) recognizer.recognized.connect(recognized) ``` 1. Розпізнавач починає слухати тільки тоді, коли ви явно запускаєте його. Додайте наступний код для запуску розпізнавання. Це працює у фоновому режимі, тому ваш додаток також потребуватиме нескінченного циклу, який "засинає", щоб підтримувати роботу програми. ```python recognizer.start_continuous_recognition() while True: time.sleep(1) ``` 1. Запустіть цей додаток. Говоріть у ваш мікрофон, і аудіо, перетворене в текст, буде виведено в консоль. ```output (.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](../../../../../6-consumer/lessons/1-speech-recognition/code-speech-to-text/virtual-iot-device). 😀 Ваш додаток для перетворення мови в текст працює успішно! --- **Відмова від відповідальності**: Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.