<jupyter_start><jupyter_text>Fala

Cada vez mais, esperamos ser capazes de nos comunicar com sistemas de inteligência artificial (IA) falando com eles, frequentemente com a expectativa de receber uma resposta falada.

![Um robô falando](./images/speech.jpg)

O *Reconhecimento de fala* (um sistema de IA que interpreta a linguagem falada) e a *Síntese de fala* (um sistema de IA que gera uma resposta falada) são os principais componentes de uma solução de IA habilitada para a fala.

 Criar um recurso dos Serviços Cognitivos

Para criar um software que consiga interpretar fala audível e responder verbalmente, é possível usar o serviço cognitivo de **Fala**, que proporciona uma maneira simples de transformar linguagem falada em texto e vice-versa.

Caso você ainda não tenha um, use as etapas a seguir para criar um recurso dos **Serviços Cognitivos** na sua assinatura do Azure:

> **Observação**: Se você já tiver um recurso dos Serviços Cognitivos, abra a página de **Início Rápido** no portal do Azure e copie a respectiva chave e o ponto de extremidade para a célula abaixo. Caso contrário, siga as etapas abaixo para criar um.

1. Em outra guia do navegador, abra o portal do Azure em https://portal.azure.com, entrando com sua conta Microsoft.
2. Clique no botão **&65291;Criar um recurso**, procure *Serviços Cognitivos* e crie um recurso dos **Serviços Cognitivos** com as configurações abaixo:
    - **Assinatura**: *sua assinatura do Azure*.
    - **Grupo de recursos**: *Selecione ou crie um grupo de recursos com um nome exclusivo*.
    - **Região**: *Escolha qualquer região disponível*:
    - **Nome**: *Insira um nome exclusivo*.
    - **Tipo de preço**: S0
    - **Confirmo que li e entendi os avisos**: Selecionado.
3. Aguarde até que a implantação seja concluída. Depois, entre em seu recurso dos Serviços Cognitivos e, na página **Visão geral**, clique no link para gerenciar as chaves do serviço. Você precisará da chave e da localização para se conectar aos seus recursos dos Serviços Cognitivos em aplicativos clientes.

 Obter a chave e a localização do seu recurso dos Serviços Cognitivos

Para usar seu recurso dos Serviços Cognitivos, os aplicativos clientes precisam da chave de autenticação e da localização:

1. No portal do Azure, na página **Chaves e ponto de extremidade** do seu recurso dos Serviços Cognitivos, copie a **Chave 1** do recurso e cole no código abaixo, substituindo **YOUR_COG_KEY**.
2. Copie a **Localização** do recurso e cole no código abaixo, substituindo **YOUR_COG_LOCATION**.
>**Observação**: continue na página **Chave e ponto de extremidade** e copie a **Localização** desta página (por exemplo: _westus_). _Não_ adicione espaços entre as palavras no campo Localização. 
3. Execute o código abaixo clicando no botão **Executar célula** (&9655;) à esquerda.<jupyter_code>cog_key = 'YOUR_COG_KEY'
cog_location = 'YOUR_COG_LOCATION'

print('Ready to use cognitive services in {} using key {}'.format(cog_location, cog_key))<jupyter_output><empty_output><jupyter_text>Reconhecimento de fala

Suponha que você queira construir um sistema de automação residencial que aceite instruções faladas, como "acender a luz" ou "apagar a luz". Seu aplicativo precisará ser capaz de receber a entrada baseada em áudio (sua instrução falada) e interpretá-la, transformando o comando em um texto que possa ser analisado.

Agora você está pronto para transcrever falas. A entrada pode vir de um **microfone** ou um **arquivo de áudio**. 
  Reconhecimento de fala com um arquivo em áudio

Execute a célula abaixo para ver o serviço de Reconhecimento de fala em ação com um **arquivo de áudio**.<jupyter_code>import os
from playsound import playsound
from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer, AudioConfig

# Get spoken command from audio file
file_name = 'light-on.wav'
audio_file = os.path.join('data', 'speech', file_name)

# Configure speech recognizer
speech_config = SpeechConfig(cog_key, cog_location)
speech_config.speech_synthesis_voice_name = 'en-US-ChristopherNeural'
audio_config = AudioConfig(filename=audio_file) # Use file instead of default (microphone)
speech_recognizer = SpeechRecognizer(speech_config, audio_config)

# Use a one-time, synchronous call to transcribe the speech
speech = speech_recognizer.recognize_once()

# Play the original audio file
playsound(audio_file)

# Show transcribed text from audio file
print(speech.text)<jupyter_output><empty_output><jupyter_text>Sintetização de voz

Agora você já viu como o serviço de Fala pode ser usado para transformar fala em texto, mas e o inverso? Como fazer a conversão de texto em fala?

Bom, vamos supor que o seu sistema de automação residencial tenha interpretado o comando para acender a luz. Uma resposta apropriada seria reconhecer o comando verbalmente (além de realizar a tarefa solicitada!).<jupyter_code>import os
import matplotlib.pyplot as plt
from PIL import Image
from azure.cognitiveservices.speech import SpeechConfig, SpeechSynthesizer, AudioConfig
%matplotlib inline

# Get text to be spoken
response_text = 'Turning the light on.'

# Configure speech synthesis
speech_config = SpeechConfig(cog_key, cog_location)
speech_config.speech_synthesis_voice_name = 'en-US-ChristopherNeural'
speech_synthesizer = SpeechSynthesizer(speech_config)

# Transcribe text into speech
result = speech_synthesizer.speak_text(response_text)

# Display an appropriate image
file_name = response_text.lower() + "jpg"
img = Image.open(os.path.join("data", "speech", file_name))
plt.axis('off')
plt. imshow(img)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.06966773847802786, 'fraction_numerical': 0.003036798856734548, 'mean_word_length': 5.298087739032621, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 15, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '231671', 'license': 'MIT', 'n_tokens_mistral': 1929, 'n_tokens_neox': 1871, 'n_words': 715, 'path': '08 - Speech.ipynb', 'repo_name': 'MicrosoftLearning/AI-900PTBR-Microsoft-Azure-AI-Fundamentals', 'size': '5598'}