5.5 KiB
Conversão de fala para texto - Dispositivo IoT virtual
Nesta parte da lição, vais escrever código para converter fala captada pelo teu microfone em texto, utilizando o serviço de fala.
Converter fala em texto
No Windows, Linux e macOS, o SDK Python dos serviços de fala pode ser usado para ouvir o teu microfone e converter qualquer fala detetada em texto. Ele escuta continuamente, detetando os níveis de áudio e enviando a fala para conversão em texto quando o nível de áudio diminui, como no final de um bloco de fala.
Tarefa - converter fala em texto
-
Cria uma nova aplicação Python no teu computador numa pasta chamada
smart-timercom um único ficheiro chamadoapp.pye um ambiente virtual Python. -
Instala o pacote Pip para os serviços de fala. Certifica-te de que estás a instalar isto a partir de um terminal com o ambiente virtual ativado.
pip install azure-cognitiveservices-speech⚠️ Se receberes o seguinte erro:
ERROR: Could not find a version that satisfies the requirement azure-cognitiveservices-speech (from versions: none) ERROR: No matching distribution found for azure-cognitiveservices-speechTerás de atualizar o Pip. Faz isso com o seguinte comando e tenta instalar o pacote novamente:
pip install --upgrade pip -
Adiciona as seguintes importações ao ficheiro
app.py:import requests import time from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizerIsto importa algumas classes usadas para reconhecer fala.
-
Adiciona o seguinte código para declarar algumas configurações:
speech_api_key = '<key>' location = '<location>' language = '<language>' recognizer_config = SpeechConfig(subscription=speech_api_key, region=location, speech_recognition_language=language)Substitui
<key>pela chave API do teu serviço de fala. Substitui<location>pela localização que usaste ao criar o recurso do serviço de fala.Substitui
<language>pelo nome do local para o idioma em que vais falar, por exemplo,en-GBpara inglês ouzn-HKpara cantonês. Podes encontrar uma lista dos idiomas suportados e os respetivos nomes de local na documentação de suporte a idiomas e vozes nos documentos da Microsoft.Esta configuração é então usada para criar um objeto
SpeechConfigque será utilizado para configurar os serviços de fala. -
Adiciona o seguinte código para criar um reconhecedor de fala:
recognizer = SpeechRecognizer(speech_config=recognizer_config) -
O reconhecedor de fala funciona numa thread em segundo plano, ouvindo o áudio e convertendo qualquer fala em texto. Podes obter o texto utilizando uma função de callback - uma função que defines e passas ao reconhecedor. Sempre que uma fala é detetada, o callback é chamado. Adiciona o seguinte código para definir um callback e passá-lo ao reconhecedor, bem como definir uma função para processar o texto, escrevendo-o na consola:
def process_text(text): print(text) def recognized(args): process_text(args.result.text) recognizer.recognized.connect(recognized) -
O reconhecedor só começa a ouvir quando o inicias explicitamente. Adiciona o seguinte código para iniciar o reconhecimento. Isto funciona em segundo plano, por isso a tua aplicação também precisará de um loop infinito que dorme para manter a aplicação em execução.
recognizer.start_continuous_recognition() while True: time.sleep(1) -
Executa esta aplicação. Fala no teu microfone e o áudio convertido em texto será exibido na consola.
(.venv) ➜ smart-timer python3 app.py Hello world. Welcome to IoT for beginners.Experimenta diferentes tipos de frases, juntamente com frases onde as palavras soam iguais, mas têm significados diferentes. Por exemplo, se estiveres a falar em inglês, diz "I want to buy two bananas and an apple too" e repara como ele usa corretamente "to", "two" e "too" com base no contexto da palavra, e não apenas no som.
💁 Podes encontrar este código na pasta code-speech-to-text/virtual-iot-device.
😀 O teu programa de conversão de fala para texto foi um sucesso!
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, tenha em atenção que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autoritária. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes da utilização desta tradução.