8.2 KiB
Преобразуване на реч в текст - Виртуално IoT устройство
В тази част от урока ще напишете код, който преобразува реч, заснета от вашия микрофон, в текст, използвайки услугата за разпознаване на реч.
Преобразуване на реч в текст
На Windows, Linux и macOS, Python 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)
-
Разпознавателят на реч работи на заден фон, слушайки за аудио и преобразувайки всяка засечена реч в текст. Можете да получите текста, използвайки callback функция - функция, която дефинирате и предавате на разпознавателя. Всеки път, когато се засече реч, се извиква callback функцията. Добавете следния код, за да дефинирате callback функция и да я предадете на разпознавателя, както и да дефинирате функция за обработка на текста, която го записва в конзолата:
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.
😀 Вашата програма за преобразуване на реч в текст беше успешна!
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.