API REST de texto para fala
O serviço de Fala permite converter texto em fala sintetizada e obter uma lista de vozes suportadas para uma região usando uma API REST. Neste artigo, você aprenderá sobre opções de autorização, opções de consulta, como estruturar uma solicitação e como interpretar uma resposta.
Gorjeta
Os casos de uso da API REST de texto para fala são limitados. Use-o somente nos casos em que você não pode usar o SDK de fala. Por exemplo, com o SDK de Fala, você pode se inscrever em eventos para obter mais informações sobre o processamento e os resultados de texto para fala.
A API REST de texto para fala suporta vozes neurais de texto para fala em muitas localidades. Cada ponto de extremidade disponível está associado a uma região. É necessária uma chave de recurso de Fala para o ponto de extremidade ou região que você planeja usar. Aqui estão os links para mais informações:
- Para obter uma lista completa de vozes, consulte Suporte de idioma e voz para o serviço de fala.
- Para obter informações sobre disponibilidade regional, consulte Regiões suportadas pelo serviço de fala.
- Para o Azure Government e o Microsoft Azure operados por pontos de extremidade 21Vianet, consulte este artigo sobre nuvens soberanas.
Importante
Os custos variam para vozes neurais pré-construídas (chamadas de Neural na página de preços) e vozes neurais personalizadas (chamadas de Neural personalizadas na página de preços). Para obter mais informações, consulte Preços do serviço de fala.
Antes de usar a API REST de texto para fala, entenda que você precisa concluir uma troca de token como parte da autenticação para acessar o serviço. Para obter mais informações, veja Autenticação.
Obter uma lista de vozes
Você pode usar o tts.speech.microsoft.com/cognitiveservices/voices/list
ponto de extremidade para obter uma lista completa de vozes para uma região ou ponto de extremidade específico. Prefira o ponto de extremidade da lista de vozes com uma região para obter uma lista de vozes para essa região. Por exemplo, para obter uma lista de vozes para a westus
região, use o https://westus.tts.speech.microsoft.com/cognitiveservices/voices/list
ponto de extremidade. Para obter uma lista de todas as regiões suportadas, consulte a documentação das regiões .
Nota
As vozes e estilos na pré-visualização só estão disponíveis em três regiões de serviço: Leste dos EUA, Europa Ocidental e Sudeste Asiático.
Cabeçalhos do pedido
Esta tabela lista cabeçalhos obrigatórios e opcionais para solicitações de texto para fala:
Cabeçalho | Description | Obrigatório ou opcional |
---|---|---|
Ocp-Apim-Subscription-Key |
Sua chave de recurso de fala. | Este cabeçalho ou Authorization é obrigatório. |
Authorization |
Um token de autorização precedido pela palavra Bearer . Para obter mais informações, veja Autenticação. |
Este cabeçalho ou Ocp-Apim-Subscription-Key é obrigatório. |
Corpo do pedido
Um corpo não é necessário para GET
solicitações para esse ponto de extremidade.
Pedido de amostra
Esta solicitação requer apenas um cabeçalho de autorização:
GET /cognitiveservices/voices/list HTTP/1.1
Host: westus.tts.speech.microsoft.com
Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY
Aqui está um exemplo de comando curl:
curl --location --request GET 'https://YOUR_RESOURCE_REGION.tts.speech.microsoft.com/cognitiveservices/voices/list' \
--header 'Ocp-Apim-Subscription-Key: YOUR_RESOURCE_KEY'
Resposta da amostra
Você deve receber uma resposta com um corpo JSON que inclua todas as localidades, vozes, gênero, estilos e outros detalhes suportados. A WordsPerMinute
propriedade de cada voz pode ser usada para estimar o comprimento da fala de saída. Este exemplo JSON mostra resultados parciais para ilustrar a estrutura de uma resposta:
[
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
"DisplayName": "Jenny",
"LocalName": "Jenny",
"ShortName": "en-US-JennyNeural",
"Gender": "Female",
"Locale": "en-US",
"LocaleName": "English (United States)",
"StyleList": [
"assistant",
"chat",
"customerservice",
"newscast",
"angry",
"cheerful",
"sad",
"excited",
"friendly",
"terrified",
"shouting",
"unfriendly",
"whispering",
"hopeful"
],
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"ExtendedPropertyMap": {
"IsHighQuality48K": "True"
},
"WordsPerMinute": "152"
},
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural)",
"DisplayName": "Jenny Multilingual",
"LocalName": "Jenny Multilingual",
"ShortName": "en-US-JennyMultilingualNeural",
"Gender": "Female",
"Locale": "en-US",
"LocaleName": "English (United States)",
"SecondaryLocaleList": [
"de-DE",
"en-AU",
"en-CA",
"en-GB",
"es-ES",
"es-MX",
"fr-CA",
"fr-FR",
"it-IT",
"ja-JP",
"ko-KR",
"pt-BR",
"zh-CN"
],
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"WordsPerMinute": "190"
},
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (ga-IE, OrlaNeural)",
"DisplayName": "Orla",
"LocalName": "Orla",
"ShortName": "ga-IE-OrlaNeural",
"Gender": "Female",
"Locale": "ga-IE",
"LocaleName": "Irish (Ireland)",
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"WordsPerMinute": "139"
},
// Redacted for brevity
{
"Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunxiNeural)",
"DisplayName": "Yunxi",
"LocalName": "云希",
"ShortName": "zh-CN-YunxiNeural",
"Gender": "Male",
"Locale": "zh-CN",
"LocaleName": "Chinese (Mandarin, Simplified)",
"StyleList": [
"narration-relaxed",
"embarrassed",
"fearful",
"cheerful",
"disgruntled",
"serious",
"angry",
"sad",
"depressed",
"chat",
"assistant",
"newscast"
],
"SampleRateHertz": "24000",
"VoiceType": "Neural",
"Status": "GA",
"RolePlayList": [
"Narrator",
"YoungAdultMale",
"Boy"
],
"WordsPerMinute": "293"
},
// Redacted for brevity
]
Códigos de estado HTTP
O código de status HTTP para cada resposta indica sucesso ou erros comuns.
Código de estado de HTTP | Description | Motivo possível |
---|---|---|
200 | OK | O pedido foi bem-sucedido. |
400 | Solicitação inválida | Um parâmetro necessário está ausente, vazio ou nulo. Ou, o valor passado para um parâmetro obrigatório ou opcional é inválido. Um motivo comum é um cabeçalho muito longo. |
401 | Não autorizado | O pedido não está autorizado. Verifique se sua chave de recurso ou token está válido e na região correta. |
429 | Demasiados pedidos | Você excedeu a cota ou a taxa de solicitações permitidas para seu recurso. |
502 | Gateway ruim | Há um problema de rede ou do lado do servidor. Esse status também pode indicar cabeçalhos inválidos. |
Converter texto em fala
O cognitiveservices/v1
ponto de extremidade permite converter texto em fala usando SSML (Speech Synthesis Markup Language).
Regiões e parâmetros de avaliação
Essas regiões são suportadas para conversão de texto em fala por meio da API REST. Certifique-se de selecionar o ponto de extremidade que corresponde à sua região de recurso de fala.
Vozes neurais pré-construídas
Use esta tabela para determinar a disponibilidade de vozes neurais por região ou ponto de extremidade:
País/Região | Ponto final |
---|---|
Leste da Austrália | https://australiaeast.tts.speech.microsoft.com/cognitiveservices/v1 |
Sul do Brasil | https://brazilsouth.tts.speech.microsoft.com/cognitiveservices/v1 |
Canadá Central | https://canadacentral.tts.speech.microsoft.com/cognitiveservices/v1 |
E.U.A. Central | https://centralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Ásia Leste | https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1 |
E.U.A. Leste | https://eastus.tts.speech.microsoft.com/cognitiveservices/v1 |
E.U.A. Leste 2 | https://eastus2.tts.speech.microsoft.com/cognitiveservices/v1 |
França Central | https://francecentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Alemanha Centro-Oeste | https://germanywestcentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Índia Central | https://centralindia.tts.speech.microsoft.com/cognitiveservices/v1 |
Leste do Japão | https://japaneast.tts.speech.microsoft.com/cognitiveservices/v1 |
Oeste do Japão | https://japanwest.tts.speech.microsoft.com/cognitiveservices/v1 |
Jio, Oeste da Índia | https://jioindiawest.tts.speech.microsoft.com/cognitiveservices/v1 |
Coreia do Sul Central | https://koreacentral.tts.speech.microsoft.com/cognitiveservices/v1 |
E.U.A. Centro-Norte | https://northcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Europa do Norte | https://northeurope.tts.speech.microsoft.com/cognitiveservices/v1 |
Leste da Noruega | https://norwayeast.tts.speech.microsoft.com/cognitiveservices/v1 |
E.U.A. Centro-Sul | https://southcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Sudeste Asiático | https://southeastasia.tts.speech.microsoft.com/cognitiveservices/v1 |
Suécia Central | https://swedencentral.tts.speech.microsoft.com/cognitiveservices/v1 |
Norte da Suíça | https://switzerlandnorth.tts.speech.microsoft.com/cognitiveservices/v1 |
Oeste da Suíça | https://switzerlandwest.tts.speech.microsoft.com/cognitiveservices/v1 |
Norte dos E.A.U. | https://uaenorth.tts.speech.microsoft.com/cognitiveservices/v1 |
US Gov - Arizona | https://usgovarizona.tts.speech.azure.us/cognitiveservices/v1 |
US Gov - Virginia | https://usgovvirginia.tts.speech.azure.us/cognitiveservices/v1 |
Sul do Reino Unido | https://uksouth.tts.speech.microsoft.com/cognitiveservices/v1 |
E.U.A. Centro-Oeste | https://westcentralus.tts.speech.microsoft.com/cognitiveservices/v1 |
Europa Ocidental | https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1 |
E.U.A. Oeste | https://westus.tts.speech.microsoft.com/cognitiveservices/v1 |
E.U.A. Oeste 2 | https://westus2.tts.speech.microsoft.com/cognitiveservices/v1 |
EUA Oeste 3 | https://westus3.tts.speech.microsoft.com/cognitiveservices/v1 |
Gorjeta
As vozes em pré-visualização estão disponíveis apenas nestas três regiões: Leste dos EUA, Europa Ocidental e Sudeste Asiático.
Vozes neurais personalizadas
Se você criou uma fonte de voz neural personalizada, use o ponto de extremidade que você criou. Você também pode usar os seguintes pontos de extremidade. Substitua {deploymentId}
pelo ID de implantação do seu modelo de voz neural.
País/Região | Formação | Implementação | Ponto final |
---|---|---|---|
Leste da Austrália | Sim | Sim | https://australiaeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Sul do Brasil | Não | Sim | https://brazilsouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Canadá Central | Não | Sim | https://canadacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
E.U.A. Central | Não | Sim | https://centralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Ásia Leste | Não | Sim | https://eastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
E.U.A. Leste | Sim | Sim | https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
E.U.A. Leste 2 | Sim | Sim | https://eastus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
França Central | Não | Sim | https://francecentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Alemanha Centro-Oeste | Não | Sim | https://germanywestcentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Índia Central | Sim | Sim | https://centralindia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Leste do Japão | Sim | Sim | https://japaneast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Oeste do Japão | Não | Sim | https://japanwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Jio, Oeste da Índia | Não | Sim | https://jioindiawest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Coreia do Sul Central | Sim | Sim | https://koreacentral.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
E.U.A. Centro-Norte | Não | Sim | https://northcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Europa do Norte | Sim | Sim | https://northeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Leste da Noruega | Não | Sim | https://norwayeast.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Norte da África do Sul | Não | Sim | https://southafricanorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
E.U.A. Centro-Sul | Sim | Sim | https://southcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Sudeste Asiático | Sim | Sim | https://southeastasia.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Norte da Suíça | Não | Sim | https://switzerlandnorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Oeste da Suíça | Não | Sim | https://switzerlandwest.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Norte dos E.A.U. | Não | Sim | https://uaenorth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Sul do Reino Unido | Sim | Sim | https://uksouth.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
E.U.A. Centro-Oeste | Não | Sim | https://westcentralus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Europa Ocidental | Sim | Sim | https://westeurope.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
E.U.A. Oeste | Sim | Sim | https://westus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
E.U.A. Oeste 2 | Sim | Sim | https://westus2.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
EUA Oeste 3 | Não | Sim | https://westus3.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId={deploymentId} |
Nota
As regiões anteriores estão disponíveis para hospedagem de modelo de voz neural e síntese em tempo real. O treinamento de voz neural personalizado só está disponível em algumas regiões. Mas os usuários podem copiar facilmente um modelo de voz neural dessas regiões para outras regiões na lista anterior.
API de Áudio Longo
A API de áudio longo está disponível em várias regiões com pontos de extremidade exclusivos:
País/Região | Ponto final |
---|---|
Leste da Austrália | https://australiaeast.customvoice.api.speech.microsoft.com |
E.U.A. Leste | https://eastus.customvoice.api.speech.microsoft.com |
Índia Central | https://centralindia.customvoice.api.speech.microsoft.com |
E.U.A. Centro-Sul | https://southcentralus.customvoice.api.speech.microsoft.com |
Sudeste Asiático | https://southeastasia.customvoice.api.speech.microsoft.com |
Sul do Reino Unido | https://uksouth.customvoice.api.speech.microsoft.com |
Europa Ocidental | https://westeurope.customvoice.api.speech.microsoft.com |
Cabeçalhos do pedido
Esta tabela lista cabeçalhos obrigatórios e opcionais para solicitações de texto para fala:
Cabeçalho | Description | Obrigatório ou opcional |
---|---|---|
Authorization |
Um token de autorização precedido pela palavra Bearer . Para obter mais informações, veja Autenticação. |
Necessário |
Content-Type |
Especifica o tipo de conteúdo para o texto fornecido. Valor aceite: application/ssml+xml . |
Necessário |
X-Microsoft-OutputFormat |
Especifica o formato de saída de áudio. Para obter uma lista completa dos valores aceitos, consulte Saídas de áudio. | Necessário |
User-Agent |
O nome do aplicativo. O valor fornecido deve ter menos de 255 caracteres. | Necessário |
Corpo do pedido
Se você estiver usando uma voz neural personalizada, o corpo de uma solicitação pode ser enviado como texto sem formatação (ASCII ou UTF-8). Caso contrário, o corpo de cada POST
solicitação será enviado como SSML. O SSML permite que você escolha a voz e o idioma da fala sintetizada que o recurso de conversão de texto em fala retorna. Para obter uma lista completa das vozes suportadas, consulte Suporte de idioma e voz para o serviço de fala.
Pedido de amostra
Essa solicitação HTTP usa SSML para especificar a voz e o idioma. Se o comprimento do corpo for longo e o áudio resultante exceder 10 minutos, ele será truncado para 10 minutos. Em outras palavras, a duração do áudio não pode exceder 10 minutos.
POST /cognitiveservices/v1 HTTP/1.1
X-Microsoft-OutputFormat: riff-24khz-16bit-mono-pcm
Content-Type: application/ssml+xml
Host: westus.tts.speech.microsoft.com
Content-Length: <Length>
Authorization: Bearer [Base64 access_token]
User-Agent: <Your application name>
<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Male'
name='en-US-ChristopherNeural'>
I'm excited to try text to speech!
</voice></speak>
* Para o Content-Length, você deve usar seu próprio comprimento de conteúdo. Na maioria dos casos, este valor é calculado automaticamente.
Códigos de estado HTTP
O código de status HTTP para cada resposta indica sucesso ou erros comuns:
Código de estado de HTTP | Description | Motivo possível |
---|---|---|
200 | OK | O pedido foi bem-sucedido. O corpo da resposta é um arquivo de áudio. |
400 | Solicitação inválida | Um parâmetro necessário está ausente, vazio ou nulo. Ou, o valor passado para um parâmetro obrigatório ou opcional é inválido. Um motivo comum é um cabeçalho muito longo. |
401 | Não autorizado | O pedido não está autorizado. Verifique se a chave de recurso ou token de fala está válido e na região correta. |
415 | Tipo de mídia não suportado | É possível que o valor errado Content-Type tenha sido fornecido. Content-Type deve ser definido como application/ssml+xml . |
429 | Demasiados pedidos | Você excedeu a cota ou a taxa de solicitações permitidas para seu recurso. |
502 | Gateway ruim | Há um problema de rede ou do lado do servidor. Esse status também pode indicar cabeçalhos inválidos. |
503 | Serviço Indisponível | Há um problema do lado do servidor por vários motivos. |
Se o status HTTP for 200 OK
, o corpo da resposta conterá um arquivo de áudio no formato solicitado. Este ficheiro pode ser reproduzido à medida que é transferido, guardado numa memória intermédia ou guardado num ficheiro.
Saídas de áudio
Os formatos de streaming e não streaming de áudio suportados são enviados em cada solicitação como cabeçalho X-Microsoft-OutputFormat
. Cada formato incorpora uma taxa de bits e um tipo de codificação. O serviço de Voz suporta saídas de áudio de 48 kHz, 24 kHz, 16 kHz e 8 kHz. Cada modelo de voz neural pré-construído está disponível em 24kHz e 48kHz de alta fidelidade.
amr-wb-16000hz
audio-16khz-16bit-32kbps-mono-opus
audio-16khz-32kbitrate-mono-mp3
audio-16khz-64kbitrate-mono-mp3
audio-16khz-128kbitrate-mono-mp3
audio-24khz-16bit-24kbps-mono-opus
audio-24khz-16bit-48kbps-mono-opus
audio-24khz-48kbitrate-mono-mp3
audio-24khz-96kbitrate-mono-mp3
audio-24khz-160kbitrate-mono-mp3
audio-48khz-96kbitrate-mono-mp3
audio-48khz-192kbitrate-mono-mp3
ogg-16khz-16bit-mono-opus
ogg-24khz-16bit-mono-opus
ogg-48khz-16bit-mono-opus
raw-8khz-8bit-mono-alaw
raw-8khz-8bit-mono-mulaw
raw-8khz-16bit-mono-pcm
raw-16khz-16bit-mono-pcm
raw-16khz-16bit-mono-truesilk
raw-22050hz-16bit-mono-pcm
raw-24khz-16bit-mono-pcm
raw-24khz-16bit-mono-truesilk
raw-44100hz-16bit-mono-pcm
raw-48khz-16bit-mono-pcm
webm-16khz-16bit-mono-opus
webm-24khz-16bit-24kbps-mono-opus
webm-24khz-16bit-mono-opus
Nota
Se selecionar o formato de saída de 48 kHz, o modelo de voz de alta fidelidade com 48 kHz será invocado em conformidade. As taxas de amostragem diferentes de 24kHz e 48kHz podem ser obtidas através de upsampling ou downsampling ao sintetizar, por exemplo, 44,1kHz é downsampled de 48kHz.
Se o formato de voz e saída selecionado tiver taxas de bits diferentes, o áudio será reamostrado conforme necessário. Você pode decodificar o ogg-24khz-16bit-mono-opus
formato usando o codec Opus.
Autenticação
Cada solicitação requer um cabeçalho de autorização. Esta tabela ilustra quais cabeçalhos são suportados para cada recurso:
Cabeçalho de autorização suportado | Voz em texto | Conversão de texto em voz |
---|---|---|
Ocp-Apim-Subscription-Key |
Sim | Sim |
Authorization: Bearer |
Sim | Sim |
Quando você estiver usando o Ocp-Apim-Subscription-Key
cabeçalho, somente sua chave de recurso deve ser fornecida. Por exemplo:
'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'
Quando estiver usando o Authorization: Bearer
cabeçalho, você precisa fazer uma solicitação para o issueToken
ponto de extremidade. Nessa solicitação, você troca sua chave de recurso por um token de acesso válido por 10 minutos.
Outra opção é usar a autenticação Microsoft Entra que também usa o Authorization: Bearer
cabeçalho, mas com um token emitido via ID do Microsoft Entra. Consulte Usar a autenticação do Microsoft Entra.
Como obter um token de acesso
Para obter um token de acesso, você precisa fazer uma solicitação ao issueToken
ponto de extremidade usando Ocp-Apim-Subscription-Key
e sua chave de recurso.
O issueToken
ponto de extremidade tem este formato:
https://<REGION_IDENTIFIER>.api.cognitive.microsoft.com/sts/v1.0/issueToken
Substitua <REGION_IDENTIFIER>
pelo identificador que corresponde à região da sua assinatura.
Use os exemplos a seguir para criar sua solicitação de token de acesso.
Exemplo HTTP
Este exemplo é uma solicitação HTTP simples para obter um token. Substitua YOUR_SUBSCRIPTION_KEY
pela chave de recurso do serviço de Fala. Se a sua subscrição não estiver na região Oeste dos EUA, substitua o Host
cabeçalho pelo nome de anfitrião da sua região.
POST /sts/v1.0/issueToken HTTP/1.1
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
Host: eastus.api.cognitive.microsoft.com
Content-type: application/x-www-form-urlencoded
Content-Length: 0
O corpo da resposta contém o token de acesso no formato JSON Web Token (JWT).
Exemplo do PowerShell
Este exemplo é um script simples do PowerShell para obter um token de acesso. Substitua YOUR_SUBSCRIPTION_KEY
pela chave de recurso do serviço de Fala. Certifique-se de usar o ponto de extremidade correto para a região que corresponde à sua assinatura. Este exemplo está atualmente definido como Oeste dos EUA.
$FetchTokenHeader = @{
'Content-type'='application/x-www-form-urlencoded';
'Content-Length'= '0';
'Ocp-Apim-Subscription-Key' = 'YOUR_SUBSCRIPTION_KEY'
}
$OAuthToken = Invoke-RestMethod -Method POST -Uri https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken
-Headers $FetchTokenHeader
# show the token received
$OAuthToken
Exemplo de cURL
cURL é uma ferramenta de linha de comando disponível no Linux (e no Subsistema Windows para Linux). Este comando cURL ilustra como obter um token de acesso. Substitua YOUR_SUBSCRIPTION_KEY
pela chave de recurso do serviço de Fala. Certifique-se de usar o ponto de extremidade correto para a região que corresponde à sua assinatura. Este exemplo está atualmente definido como Oeste dos EUA.
curl -v -X POST \
"https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Content-Length: 0" \
-H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY"
Exemplo C#
Esta classe C# ilustra como obter um token de acesso. Passe sua chave de recurso para o serviço de Fala quando você instanciar a classe. Se a sua subscrição não estiver na região Oeste dos EUA, altere o valor de para corresponder à região da FetchTokenUri
sua subscrição.
public class Authentication
{
public static readonly string FetchTokenUri =
"https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken";
private string subscriptionKey;
private string token;
public Authentication(string subscriptionKey)
{
this.subscriptionKey = subscriptionKey;
this.token = FetchTokenAsync(FetchTokenUri, subscriptionKey).Result;
}
public string GetAccessToken()
{
return this.token;
}
private async Task<string> FetchTokenAsync(string fetchUri, string subscriptionKey)
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
UriBuilder uriBuilder = new UriBuilder(fetchUri);
var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null);
Console.WriteLine("Token Uri: {0}", uriBuilder.Uri.AbsoluteUri);
return await result.Content.ReadAsStringAsync();
}
}
}
Exemplo de Python
# Request module must be installed.
# Run pip install requests if necessary.
import requests
subscription_key = 'REPLACE_WITH_YOUR_KEY'
def get_token(subscription_key):
fetch_token_url = 'https://eastus.api.cognitive.microsoft.com/sts/v1.0/issueToken'
headers = {
'Ocp-Apim-Subscription-Key': subscription_key
}
response = requests.post(fetch_token_url, headers=headers)
access_token = str(response.text)
print(access_token)
Como usar um token de acesso
O token de acesso deve ser enviado para o serviço como cabeçalho Authorization: Bearer <TOKEN>
. Cada token de acesso é válido por 10 minutos. Você pode obter um novo token a qualquer momento, mas para minimizar o tráfego e a latência da rede, recomendamos usar o mesmo token por nove minutos.
Aqui está um exemplo de solicitação HTTP para a API REST de fala para texto para áudio curto:
POST /cognitiveservices/v1 HTTP/1.1
Authorization: Bearer YOUR_ACCESS_TOKEN
Host: westus.stt.speech.microsoft.com
Content-type: application/ssml+xml
Content-Length: 199
Connection: Keep-Alive
// Message body here...
Utilize a autenticação do Microsoft Entra
Para usar a autenticação do Microsoft Entra com a API REST de fala para texto para áudio curto, você precisa criar um token de acesso. As etapas para obter o token de acesso que consiste em ID de recurso e token de acesso do Microsoft Entra são as mesmas que ao usar o SDK de fala. Siga as etapas aqui Usar a autenticação do Microsoft Entra
- Criar um recurso de Fala
- Configurar o recurso de Fala para autenticação do Microsoft Entra
- Obter um de acesso do Microsoft Entra
- Obter o ID do recurso de Fala
Depois que o ID do recurso e o token de acesso do Microsoft Entra foram obtidos, o token de acesso real pode ser construído seguindo este formato:
aad#YOUR_RESOURCE_ID#YOUR_MICROSOFT_ENTRA_ACCESS_TOKEN
Você precisa incluir o prefixo "aad#" e o separador "#" (hash) entre o ID do recurso e o token de acesso.
Aqui está um exemplo de solicitação HTTP para a API REST de fala para texto para áudio curto:
POST /cognitiveservices/v1 HTTP/1.1
Authorization: Bearer YOUR_ACCESS_TOKEN
Host: westus.stt.speech.microsoft.com
Content-type: application/ssml+xml
Content-Length: 199
Connection: Keep-Alive
// Message body here...
Para saber mais sobre os tokens de acesso do Microsoft Entra, incluindo o tempo de vida do token, visite Tokens do Access na plataforma de identidade da Microsoft.