Reconhecimento de fala
Observação
Consulte a guia Texto e imagens para obter mais detalhes!
O reconhecimento de voz, frequentemente chamado de voz para texto (STT), é uma capacidade de IA que permite que aplicações e agentes respondam a entradas faladas. O reconhecimento de voz pega na palavra falada e converte-a em dados, geralmente texto. O software de voz para texto utiliza tipicamente múltiplos modelos, incluindo:
- Um modelo acústico que converte o áudio em fonemas (representações de sons específicos).
- Um modelo de linguagem que mapeia fonemas para palavras.
As palavras que a fala da IA reconhece são convertidas em texto. Pode usar o texto para vários fins, como fornecer legendas ocultas, criar transcrições de chamadas, automatizar o ditado de notas e muito mais.
Azure Speech - Fala para Texto
O Azure Speech inclui uma API de voz para texto que pode usar para processar entrada de voz a partir de um microfone ou ficheiro de áudio.
Observação
Uma API (Application Programming Interface) é um conjunto de regras e endpoints que permite a uma aplicação de software comunicar e utilizar a funcionalidade ou dados de outra aplicação.
A Microsoft Foundry é uma plataforma da Microsoft que ajuda os programadores a construir, testar e implementar aplicações e agentes de IA, reunindo modelos, ferramentas, dados e serviços num só local.
No novo portal Microsoft Foundry, podemos explorar as capacidades de conversão de fala para texto do Azure Speech no ambiente de testes do Foundry. Para chegar ao playground, navegue até à página Build, depois para Models, e depois ao separador Serviços de IA. No separador, encontrará uma seleção de serviços de IA disponíveis para testes, incluindo o serviço Azure Speech - Speech to Text.
No parque infantil, podes carregar um ficheiro áudio ou gravar-te a falar. O Azure Speech transcreve o que é dito, dando-te uma ideia de como a tua própria aplicação responderia à entrada de áudio.
O playground no portal Foundry é um ótimo local para experimentar Azure Speech, mas para usar a versão de voz para texto numa aplicação, precisamos de escrever algum código.
Usando o SDK de voz para texto do Azure
O Azure Speech – Speech-to-Text SDK é uma biblioteca cliente que permite às aplicações converter áudio falado em texto escrito. O SDK de voz para texto foi concebido para facilitar a adição do reconhecimento de voz às aplicações.
Observação
Uma biblioteca cliente é um conjunto de código pronto que os programadores podem usar na sua aplicação para comunicar facilmente com um serviço ou API.
O SDK permite que a sua aplicação seja:
- Capturar ou enviar áudio de um microfone, ficheiro de áudio ou fluxo de áudio
- Envie esse áudio para o Azure Speech de forma segura
- Receber texto transcrito quase em tempo real ou após a conclusão do processamento
O SDK gere redes, autenticação, streaming de áudio e análise de respostas para que os programadores possam focar-se na lógica da aplicação.
Desenvolvimento de uma aplicação
O SDK de Voz para Texto é normalmente utilizado na camada cliente ou de serviço de uma aplicação. O SDK funciona como a ponte entre o código da sua aplicação e o serviço Azure Speech.
Para usar o Azure Speech Python SDK, é necessário ter uma versão compatível do Python e o Azure Speech Python SDK instalados.
O SDK Python pode ser instalado no terminal do "Visual Studio Code" utilizando:
pip install azure-cognitiveservices-speech
Observação
O código da aplicação é escrito em editores de código, como o Visual Studio Code. O terminal de um editor de código é uma janela de linha de comandos integrada dentro do editor onde pode executar comandos sem sair do seu ambiente de desenvolvimento.
Para usar o Azure Speech, também precisas de criar um recurso Foundry. O endpoint e a chave do recurso Foundry são usados no teu código para autenticar a tua ligação.
Depois de instalar o SDK em Python e criar um recurso Foundry, pode criar e executar o seu programa. Considere o seguinte código Python. Quando o executas:
- A sua aplicação inicializa o Speech SDK: Fornece um endpoint e autenticação (chave ou Microsoft Entra ID)
- O áudio é capturado ou carregado: entrada de microfone ou ficheiro/stream de áudio
- O áudio é enviado para o Azure Speech: O SDK transmite ou carrega áudio de forma segura
- O reconhecimento de voz corre na cloud: os modelos de fala do Azure analisam o áudio
- Os resultados de texto são devolvidos: A sua aplicação recebe texto reconhecido e metadados opcionais
import azure.cognitiveservices.speech as speechsdk
# Set up the speech config using resource endpoint
endpoint_url = "ENDPOINT"
speech_key = "FOUNDRY_KEY"
speech_config = speechsdk.SpeechConfig(
subscription=speech_key,
endpoint=endpoint_url
)
# Create a recognizer with microphone input
audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
speech_recognizer = speechsdk.SpeechRecognizer(
speech_config=speech_config,
audio_config=audio_config
)
# Event handlers
def recognized_handler(evt):
print(f"Recognized: {evt.result.text}")
def recognizing_handler(evt):
print(f"Recognizing: {evt.result.text}")
# Connect event handlers
speech_recognizer.recognized.connect(recognized_handler)
speech_recognizer.recognizing.connect(recognizing_handler)
# Start continuous recognition
speech_recognizer.start_continuous_recognition()
print("Say something...")
# Keep the program running
input("Press Enter to stop...")
speech_recognizer.stop_continuous_recognition()
Exemplo de aplicação cliente
Por exemplo, digamos que quer desenvolver uma aplicação leve que transcreva automaticamente mensagens de voicemail. No editor de código, temos um ficheiro de áudio e um ficheiro Python, que contém código de aplicação.
Imagina que tens um ficheiro áudio contendo uma gravação de voicemail. Para transcrever a mensagem, comece por especificar o endpoint, a chave e a fonte de áudio que pretende transcrever. Depois, use um SpeechRecognizer objeto para realizar a transcrição, antes de mostrar os resultados.
Depois de executares o código, podes ver o texto da transcrição.
Opções de processamento de áudio
Pode usar a API de voz para texto do Azure Speech para realizar transcrição em tempo real ou em lote de áudio para um formato de texto. A fonte de áudio para transcrição pode ser uma transmissão de áudio em tempo real de um microfone ou um ficheiro de áudio.
Transcrição em tempo real: Fala em tempo real para texto permite transcrever fluxos de áudio para texto. Pode utilizar a transcrição em tempo real para apresentações, demonstrações ou outros cenários com um orador.
Para que a transcrição em tempo real funcione, seu aplicativo precisa estar ouvindo o áudio recebido de um microfone ou outra fonte de entrada de áudio, como um arquivo de áudio. O código da aplicação transmite o áudio para o serviço, o qual devolve o texto transcrito.
Transcrição em lote: Nem todos os cenários de fala para texto são em tempo real. Você pode ter gravações de áudio armazenadas em um compartilhamento de arquivos, em um servidor remoto ou até mesmo no armazenamento do Azure. Pode apontar para ficheiros de áudio com um URI de assinatura de acesso partilhado (SAS) e receber os resultados de transcrição de forma assíncrona.
A transcrição em lote deve ser executada de forma assíncrona porque os trabalhos em lote são agendados em regime de melhor esforço. Normalmente, um trabalho começa a ser executado em poucos minutos após a solicitação, mas não há estimativa de quando um trabalho muda para o estado de execução.
O Reconhecimento de Fala no Azure Speech é uma excelente forma de construir soluções que transcrevem áudio gravado ou automatizam a legendagem de voz. De seguida, aprenda a incorporar a síntese de voz numa aplicação.