Escolar Documentos
Profissional Documentos
Cultura Documentos
Guia do desenvolvedor
Amazon Transcribe Guia do desenvolvedor
Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,
in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits
Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not
be affiliated with, connected to, or sponsored by Amazon.
Amazon Transcribe Guia do desenvolvedor
Table of Contents
O que é o Amazon Transcribe? ............................................................................................................ 1
Reconhecer vozes ...................................................................................................................... 2
Transcrever canais de áudio separados ......................................................................................... 2
Transcrever streaming de áudio .................................................................................................... 2
Vocabulário personalizado ........................................................................................................... 3
Você é um usuário iniciante do Amazon Transcribe? ....................................................................... 3
Como ele funciona .............................................................................................................................. 4
Entrada de voz .......................................................................................................................... 5
Transcrição de números .............................................................................................................. 5
Identificar oradores ..................................................................................................................... 7
Transcrever streaming de áudio .................................................................................................... 8
Identificação de canal ................................................................................................................. 8
Vocabulários personalizados ....................................................................................................... 10
Criar um vocabulário personalizado usando uma lista ............................................................. 11
Criar um vocabulário personalizado usando uma tabela .......................................................... 12
Conjuntos de caracteres para vocabulários personalizados ..................................................... 13
Conceitos básicos ............................................................................................................................. 30
Etapa 1: Configurar uma conta ................................................................................................... 30
Cadastre-se na AWS ......................................................................................................... 30
Criar um usuário do IAM .................................................................................................... 31
Próxima etapa .................................................................................................................. 31
Etapa 2: Configurar aAWS CLI ................................................................................................... 31
Próxima etapa .................................................................................................................. 32
Etapa 3: conceitos básicos do uso do console .............................................................................. 32
Como criar um trabalho de transcrição ................................................................................. 32
Como exibir um trabalho de transcrição ............................................................................... 33
Etapa 4: Conceitos básicos do uso da API ................................................................................... 36
Conceitos básicos (AWS CLI) ............................................................................................. 36
Conceitos básicos (SDK for Python) .................................................................................... 38
Etapa 5: Conceitos básicos do streaming de áudio ........................................................................ 40
Transcrição de streaming ................................................................................................................... 44
Codificação de fluxo de evento ................................................................................................... 46
Uso de streaming com WebSocket .............................................................................................. 47
Adicionar uma política para solicitações WebSocket à sua função do IAM .................................. 48
Criação de uma Pre-Signed URL ........................................................................................ 48
Manipular a resposta de atualização do WebSocket ............................................................... 52
Criar uma solicitação de streaming WebSocket ..................................................................... 52
Manipular uma resposta de streaming WebSocket ................................................................. 53
Manipular erros de streaming WebSocket ............................................................................. 53
Uso de streaming com HTTP/2 ................................................................................................... 54
Solicitação de streaming .................................................................................................... 54
Resposta de streaming ...................................................................................................... 57
Exemplo de solicitação e resposta ...................................................................................... 58
Cliente de nova tentativa HTTP/2 ........................................................................................ 60
Uso do cliente de nova tentativa HTTP/2 .............................................................................. 66
Segurança ....................................................................................................................................... 69
Proteção de dados .................................................................................................................... 69
Criptografia em repouso ..................................................................................................... 70
Criptografia em trânsito ...................................................................................................... 70
Gerenciamento de chaves .................................................................................................. 70
Identity and Access Management ................................................................................................ 71
Público ............................................................................................................................ 72
Autenticação com identidades ............................................................................................. 72
Gerenciamento do acesso usando políticas .......................................................................... 74
iii
Amazon Transcribe Guia do desenvolvedor
iv
Amazon Transcribe Guia do desenvolvedor
É possível usar o Amazon Transcribe para transcrever os seguintes idiomas para texto:
É possível usar o Amazon Transcribe com outros serviços da AWS para criar aplicativos. Por exemplo, é
possível:
• Use o Amazon Transcribe para converter voz em texto, enviar o texto para o Amazon Translate para
traduzi-lo para outro idioma e enviar o texto traduzido para o Amazon Polly para leitura em voz alta do
texto traduzido.
• Use o Amazon Transcribe para transcrever gravações de chamadas de atendimento ao cliente para
análise. Depois de transcrever uma gravação, envie a transcrição para o Amazon Comprehend para
identificar palavras-chave, tópicos ou sentimentos.
1
Amazon Transcribe Guia do desenvolvedor
Reconhecer vozes
• Use o Amazon Transcribe para transcrever transmissões ao vivo, como as de televisão, para fornecer
legendas em tempo real.
Para usar o Amazon Transcribe, armazene o arquivo de áudio em um bucket do Amazon S3. A saída do
trabalho de transcrição também é armazenada em um bucket do S3. O conteúdo entregue aos buckets do
Amazon S3 podem conter conteúdo do cliente. Para obter mais informações sobre como remover dados
confidenciais, consulte Como eu faço para esvaziar um bucket do S3? ou Como eu faço para excluir um
bucket do S3?
Reconhecer vozes
O Amazon Transcribe pode identificar cada orador em um clipe de áudio, uma técnica conhecida como
diarização ou identificação do orador. Quando você ativa a identificação do orador, o Amazon Transcribe
inclui um atributo que identifica cada orador no clipe de áudio. Você pode usar a identificação do orador
para:
Você pode especificar o número de vozes que deseja que o Amazon Transcribe reconheça em um clipe de
áudio.
Use a identificação de canal quando o áudio estiver em vários canais. Por exemplo, use identificação de
canal:
Para obter mais informações sobre a identificação de canal, consulte Identificação de canal (p. 8).
Para obter mais informações sobre como processar streaming de áudio, consulte Transcrição de
streaming (p. 44).
2
Amazon Transcribe Guia do desenvolvedor
Vocabulário personalizado
Vocabulário personalizado
Crie um vocabulário personalizado para ajudar o Amazon Transcribe a reconhecer palavras que são
específicas do seu caso de uso e melhorar a precisão na conversão de fala em texto. Por exemplo, você
pode criar um vocabulário personalizado que inclui palavras e expressões específicas do setor.
Para obter mais informações sobre a criação de um vocabulário personalizado, consulte Vocabulários
personalizados (p. 10).
3
Amazon Transcribe Guia do desenvolvedor
• StartTranscriptionJob (p. 114) – Inicia um trabalho assíncrono para transcrever a fala de um arquivo de
áudio em texto.
• ListTranscriptionJobs (p. 108) – retorna uma lista de trabalhos de transcrição que foram iniciados. Você
pode especificar o status dos trabalhos que deseja que a operação retorne. Por exemplo, você pode
obter uma lista de todos os trabalhos pendentes ou uma lista de trabalhos concluídos.
• GetTranscriptionJob (p. 103) – retorna o resultado de um trabalho de transcrição. A resposta contém
um link para um arquivo JSON que contém os resultados.
Para transcrever um streaming de áudio em texto, o Amazon Transcribe fornece uma operação:
• StartStreamTranscription (p. 122) – inicia um fluxo de HTTP/2 bidirecional onde o áudio é transmitido
para o Amazon Transcribe e os resultados da transcrição são transmitidos para o seu aplicativo.
Você também pode iniciar um streaming com protocolo WebSocket para enviar áudios ao
Amazon Transcribe. Para mais informações, consulte Usar streaming do Amazon Transcribe com
WebSockets (p. 47).
É possível usar o Amazon Transcribe para criar e gerenciar vocabulários personalizados para sua solução.
Um vocabulário personalizado fornece ao Amazon Transcribe mais informações sobre como processar a
fala em um clipe de áudio.
• CreateVocabulary (p. 95) – cria um vocabulário personalizado que pode ser usado nos trabalhos de
transcrição.
• DeleteVocabulary (p. 101) – exclui um vocabulário personalizado de sua conta.
• GetVocabulary (p. 105) – obtém informações sobre um vocabulário personalizado e um URL que você
pode usar para fazer download do conteúdo de um vocabulário.
• ListVocabularies (p. 111) – obtém uma lista de vocabulários personalizados em sua conta.
• UpdateVocabulary (p. 118) – atualiza um vocabulário existente.
4
Amazon Transcribe Guia do desenvolvedor
Entrada de voz
• Alemão (de-DE)
• Hindi indiano (hi-IN)
• Italiano (it-IT)
• Coreano (ko-KR)
• Português do Brasil (pt-BR)
• Russo (ru-RU)
• Espanhol (es-ES)
• Espanhol dos EUA (es-US)
Tópicos
• Entrada de voz (p. 5)
• Transcrição de números (p. 5)
• Identificar oradores (p. 7)
• Transcrever streaming de áudio (p. 8)
• Identificação de canal (p. 8)
• Vocabulários personalizados (p. 10)
Entrada de voz
Para transcrever um arquivo de áudio, você usa um trabalho de transcrição. O arquivo é armazenado
como um objeto em um bucket do Amazon S3. O arquivo de entrada deve estar:
• Use um formato sem perda, como FLAC ou WAV, com a codificação de PCM de 16 bits.
• Use uma taxa de amostragem de 8000 Hz para áudio de telefone.
Transcrição de números
Quando você está transcrevendo áudio em inglês dos EUA, inglês australiano, inglês britânico ou inglês
indiano usando a operação StartTranscriptionJob (p. 114), os números são transcritos como dígitos,
5
Amazon Transcribe Guia do desenvolvedor
Transcrição de números
em vez de palavras. Para a transcrição de streaming, os números são transcritos como dígitos apenas
em inglês dos EUA e inglês britânico. Por exemplo, o número falado "mil duzentos e quarenta e dois" é
transcrito como "1242".
Regra Descrição
Converter números cardinais seguidos de “milhão” • “cem milhões” > 100 milhões
ou “bilhão” em numerais seguidos de uma palavra • “um bilhão” > 1 bilhão
quando “milhão” ou “bilhão” não for seguido por um
• “dois vírgula três milhões” > 2,3 milhões
número.
Converter números menores que 10 dígitos se • "três quatro cinco" > 345
houver mais de um em uma linha. • "Meu número de telefone é quatro dois
cinco cinco cinco cinco um dois um dois" >
4255551212
Os decimais são indicados por "ponto". • "trezentos e três ponto cinco" > 303.5
• "três ponto vinte e três" > 3.23
• "zero ponto quatro" > 0.4
• "zero ponto três" > 0.3
Converter a palavra "por cento" após um número • "vinte e três por cento" > 23%
em um sinal de porcentagem (%). • "vinte e três ponto quatro cinco por cento" >
23.45%
Converter as palavras "dólar", "dólar americano" ou • "um dólar e quinze centavos" > $ 1,15
"USD" após um número em um cifrão ($) antes do • “vinte e três USD” > $ 23
número.
• “vinte e três dólares australianos” > $ 23
Converter as palavras “rúpias”, “rúpias indianas” • “vinte e três rúpias” > #23
ou “INR” após um número no símbolo de rúpia (#) • “cinquenta rúpias e trinta paisas” > # 50,30
antes do número.
6
Amazon Transcribe Guia do desenvolvedor
Identificar oradores
Regra Descrição
Combinar anos expressos como dois dígitos em • "mil novecentos e sessenta e dois" > 1962
quatro. • "o ano é dois mil e doze" > o ano é 2012
Válido somente para os séculos 20, 21 e 22. • "dois mil e dezenove" > 2019
• "dois mil cento e trinta" > 2130
Converter datas em números. • "quinto dia de maio de dois mil e doze" > 5 de
maio de 2012
• "cinco de maio de dois mil e doze" > 5 de maio
de 2012
• "cinco maio dois mil e doze" > 5 de maio de 2012
Separar intervalos de números pela palavra "a". • "vinte e três a trinta sete" > 23 a 37
Identificar oradores
É possível configurar o Amazon Transcribe para identificar os diferentes oradores em um clipe de áudio,
um processo conhecido como diarização ou identificação do orador. Quando você habilita a identificação
do orador, o Amazon Transcribe marca cada fragmento com o orador identificado.
Você pode especificar que o Amazon Transcribe deve identificar entre 2 e 10 oradores no clipe de áudio.
Você obtém o melhor desempenho quando o número de oradores que pede para identificar corresponde
ao número de oradores no áudio de entrada.
Quando o Amazon Transcribe encerra um trabalho de transcrição, ele cria um arquivo JSON que contém
os resultados e salva o arquivo em um bucket do S3. O arquivo é identificado por URI específico do
usuário. Use o URI para obter os resultados.
{
"jobName": "job ID",
"accountId": "account ID",
"results": {
"transcripts": [{
"transcript": "Professional answer."
}],
"speaker_labels": {
"speakers": 1,
"segments": [{
"start_time": "0.000000",
"speaker_label": "spk_0",
"end_time": "1.430",
"items": [{
"start_time": "0.100",
"speaker_label": "spk_0",
"end_time": "0.690"
7
Amazon Transcribe Guia do desenvolvedor
Transcrever streaming de áudio
}, {
"start_time": "0.690",
"speaker_label": "spk_0",
"end_time": "1.210"
}]
}]
},
"items": [{
"start_time": "0.100",
"end_time": "0.690",
"alternatives": [{
"confidence": "0.8162",
"content": "Professional"
}],
"type": "pronunciation"
}, {
"start_time": "0.690",
"end_time": "1.210",
"alternatives": [{
"confidence": "0.9939",
"content": "answer"
}],
"type": "pronunciation"
}, {
"alternatives": [{
"content": "."
}],
"type": "punctuation"
}]
},
"status": "COMPLETED"
}
Identificação de canal
Quando um arquivo de áudio tiver vários canais que você deseja transcrever em transcrições separadas
com a identificação do canal que contém a fala, use a identificação de canal. Por exemplo, se você tiver
8
Amazon Transcribe Guia do desenvolvedor
Identificação de canal
O Amazon Transcribe divide o arquivo de áudio em vários canais e transcreve os canais separadamente.
Após transcrever todos os canais, o Amazon Transcribe também mescla as transcrições para criar uma
única transcrição. Ele retorna todas as transcrições em um único arquivo de resultado.
As falas dos oradores são ordenadas pela hora de início. Uma fala é uma unidade de voz no canal de
áudio que é normalmente separada de outras falas por silêncio. Se uma fala em um canal se sobrepor a
outra em outro canal, o Amazon Transcribe vai ordená-las na transcrição pela hora de início. As falas que
se sobrepõem no áudio de entrada não se sobrepõem na saída da transcrição.
{
"jobName": "job id",
"accountId": "account id",
"results": {
"transcripts": [
{
"transcript": "When you try ... It seems to ..."
}
],
"channel_labels": {
"channels": [
{
"channel_label": "ch_0",
"items": [
{
"start_time": "12.282",
"end_time": "12.592",
"alternatives": [
{
"confidence": "1.0000",
"content": "When"
}
],
"type": "pronunciation"
},
{
"start_time": "12.592",
"end_time": "12.692",
"alternatives": [
{
"confidence": "0.8787",
"content": "you"
}
],
"type": "pronunciation"
},
{
"start_time": "12.702",
"end_time": "13.252",
"alternatives": [
{
"confidence": "0.8318",
"content": "try"
}
9
Amazon Transcribe Guia do desenvolvedor
Vocabulários personalizados
],
"type": "pronunciation"
},
Transcription abbreviated
]
},
{
"channel_label": "ch_1",
"items": [
{
"start_time": "12.379",
"end_time": "12.589",
"alternatives": [
{
"confidence": "0.5645",
"content": "It"
}
],
"type": "pronunciation"
},
{
"start_time": "12.599",
"end_time": "12.659",
"alternatives": [
{
"confidence": "0.2907",
"content": "seems"
}
],
"type": "pronunciation"
},
{
"start_time": "12.669",
"end_time": "13.029",
"alternatives": [
{
"confidence": "0.2497",
"content": "to"
}
],
"type": "pronunciation"
},
Transcription abbreviated
]
}
}
Vocabulários personalizados
Tópicos
• Criar um vocabulário personalizado usando uma lista (p. 11)
• Criar um vocabulário personalizado usando uma tabela (p. 12)
• Conjuntos de caracteres para vocabulários personalizados (p. 13)
Você pode fornecer ao Amazon Transcribe mais informações sobre como processar a fala em seu arquivo
de entrada criando um vocabulário personalizado. Um vocabulário personalizado é uma lista de palavras
específicas que você deseja que o Amazon Transcribe reconheça na entrada de áudio. São geralmente
palavras e expressões específicas do domínio, palavras que o Amazon Transcribe não está reconhecendo
ou nomes próprios.
10
Amazon Transcribe Guia do desenvolvedor
Criar um vocabulário personalizado usando uma lista
Vocabulários personalizados funcionam melhor quando usados para atingir palavras ou frases específicas.
Recomendamos que você crie pequenos vocabulários separados personalizados para gravações de
áudio específicos em vez de criar um único vocabulário com muitos termos para usar em todas as suas
gravações. É possível ter até 100 vocabulários na sua conta. O limite de tamanho de um vocabulário
personalizado é 50 Kb.
Você especifica o vocabulário personalizado em um arquivo de texto. Você pode especificar uma lista
de palavras no vocabulário, ou uma tabela de quatro colunas que oferece a você mais controle sobre a
entrada e a saída das palavras no vocabulário personalizado.
Para obter mais informações sobre a criação de vocabulário personalizado, consulte Criar um
vocabulário personalizado usando uma lista (p. 11) e Criar um vocabulário personalizado usando uma
tabela (p. 12).
Para criar um vocabulário personalizado, use a operação CreateVocabulary (p. 95) ou o console
do Amazon Transcribe. Após enviar a solicitação CreateVocabulary, o Amazon Transcribe
processará o vocabulário. Para ver o status de processamento do vocabulário, use o console ou a
GetVocabulary (p. 105) operação.
Note
Se uma entrada na lista for uma frase, separe as palavras da frase com um hífen. Por exemplo, se a frase
for Los Angeles, você deve inseri-la no arquivo como Los-Angeles.
Insira acrônimos ou outras palavras cujas letras devem ser pronunciadas individualmente como letras
únicas separadas por pontos, como A.B.C. ou F.B.I.. Para especificar a forma plural de um acrônimo,
como "ABCs", separe o "s" do acrônimo com um hífen: A.B.C.-s. É possível usar letras maiúsculas ou
minúsculas para inserir um acrônimo. Somente inglês dos EUA (en-US) oferece suporte a acrônimos.
O exemplo a seguir mostra um arquivo de entrada com as palavras do vocabulário e frases em linhas
separadas:
Los-Angeles
F.B.I.
Etienne
11
Amazon Transcribe Guia do desenvolvedor
Criar um vocabulário personalizado usando uma tabela
O exemplo a seguir mostra um arquivo de entrada com as palavras do vocabulário e frases em uma única
linha, separadas por vírgulas:
Los-Angeles,F.B.I.,Etienne
Coloque cada palavra ou frase em seu arquivo de texto em uma linha separada. Separe os campos com
caracteres TAB. Salve o arquivo com a extensão .txt em um bucket do Amazon S3 na mesma região em
que você está chamando a API.
Os exemplos a seguir são arquivos de entrada em formato de texto. Os exemplos usam espaços para
alinhar as colunas. Seus arquivos de entrada devem usar caracteres TAB para separar as colunas. Inclua
espaços somente nas colunas DisplayAs e IPA. Se você copiar estes exemplos, remova os espaços
extras entre as colunas e substitua “[TAB]” por um caractere TAB.
As colunas podem ser inseridas em qualquer ordem. A seguir estão estruturas também válidas para o
arquivo de entrada de vocabulário personalizado.
Se a entrada for uma frase, separe as palavras com um hífen (-). Por exemplo, digite Los Angeles
como Los-Angeles.
Insira acrônimos ou outras palavras cujas letras devem ser pronunciadas individualmente como letras
únicas seguidas por pontos, como A.B.C. ou F.B.I.. Para especificar a forma plural de um acrônimo,
12
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
como "ABCs", separe o "s" do acrônimo com um hífen: "A.B.C.-s". É possível usar letras maiúsculas
ou minúsculas para inserir um acrônimo.
O campo Phrase é obrigatório. Você pode usar qualquer um dos caracteres permitidos para o idioma
de entrada. Para ver a lista de caracteres permitidos, consulte cada idioma. Se você não especificar o
campo DisplayAs, o Amazon Transcribe usa o conteúdo do campo Phrase no arquivo de saída.
• AFI – para especificar a pronúncia da palavra ou frase, você pode incluir caracteres no Alfabeto Fonético
Internacional (AFI) nesse campo. O campo IPA não pode conter espaços no início nem no final, e você
deve usar um único espaço para separar cada fonema na entrada. Por exemplo, em inglês, a expressão
Los-Angeles seria inserida como l ɔ s æ n ɔ ɔ l ɔ s. A frase F.B.I. seria inserida como
ɔ f b i aɔ.
Se você não especificar o conteúdo do campo IPA, você deve incluir um campo IPA em branco. Se
você especificar o campo IPA, você não pode especificar o campo SoundsLike.
Para obter uma lista de caracteres do AFI permitidos para um idioma específico, consulte a tabela para
cada idioma.
• SoundsLike – Você pode quebrar uma palavra ou frase em partes menores e fornecer uma pronúncia
para cada parte usando a ortografia padrão do idioma para imitar o som da palavra. Por exemplo, em
inglês, você pode fornecer dicas de pronúncia para a frase Los-Angeles desta forma: loss-ann-
gel-es. A dica para a palavra Etienne teria a seguinte aparência: eh-tee-en. Você separa cada
parte da dica com um hífen (-).
Se você não especificar o campo SoundsLike, você deve incluir um campo SoundsLike em branco.
Se você especificar o campo SoundsLike, você não pode especificar o campo IPA.
Você pode usar qualquer um dos caracteres permitidos para o idioma de entrada. Para ver a lista de
caracteres permitidos, consulte cada idioma.
• DisplayAs – Define como a palavra ou frase fica na saída. Por exemplo, se a palavra ou frase for Los-
Angeles, você poderá especificar a forma de exibição como "Los Angeles" para que o hífen não esteja
presente na saída.
Se você não especificar o campo DisplayAs, o Amazon Transcribe usará o campo Phrase do arquivo
de entrada na saída.
Tópicos
• Conjunto de caracteres árabes (p. 14)
• Conjunto de caracteres chineses (p. 15)
• Conjunto de caracteres em inglês (p. 16)
• Conjunto de caracteres em francês (p. 17)
• Conjunto de caracteres em alemão (p. 19)
• Conjunto de caracteres hindi (p. 20)
• Conjunto de caracteres em italiano (p. 22)
• Conjunto de caracteres em coreano (p. 24)
13
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
entrada de vocabulário:
14
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
d 0064 ð 00F0
h 0068 ħ 0127
i 0069 ɖ 0256
j 006A ɪ 026A
k 006B ɫ 026B
l 006C ɭ 026D
m 006D ʂ 0282
n 006E ʃ 0283
p 0070 ʈ 0288
q 0071 ʒ 0292
r 0072 ʔ 0294
t 0074 θ 03B8
u 0075
• chinese-character-set.txt
O campo SoundsLike pode conter as sílabas pinyin listadas no arquivo a seguir no GitHub.
• pinyin-set.txt
Quando você usar sílabas pinyin no campo SoundsLike, separe-as com um hífen (-).
O Amazon Transcribe representa os quatro tons em chinês mandarim usando números. A tabela a seguir
mostra como as marcas de tom são mapeadas para a palavra “ma“.
15
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
Os vocabulários personalizados chineses não usam o campo IPA, mas você ainda deve incluir o
cabeçalho IPA na tabela de vocabulário.
Veja a seguir um exemplo de arquivo de entrada em formato de texto. O exemplo usa espaços para alinhar
as colunas. Seus arquivos de entrada devem usar caracteres TAB para separar as colunas. Inclua espaços
apenas na coluna DisplayAs.
• a-z
• A-Z
• ' (apóstrofo)
• - (hífen)
• . (ponto final)
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
entrada de vocabulário:
b 0062 æ 00E6
d 0064 ð 00F0
f 0066 ɑ 0251
g 0067 ɔ 0254
16
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
i 0069 ə 0259
j 006A ɛ 025B
k 006B ɝ 025D
l 006C ɡ 0261
m 006D ɹ 0279
n 006E ʃ 0283
p 0070 ʍ 028D
s 0073 ʒ 0292
t 0074 ʤ 02A4
u 0075 ʧ 02A7
v 0076 θ 03B8
• a-z
• A-Z
• ' (apóstrofo)
• - (hífen)
• . (ponto final)
Você também pode usar os seguintes caracteres Unicode nos campos Phrase e SoundsLike:
À 00C0 à 00E0
 00C2 â 00E2
Ç 00C7 ç 00E7
È 00C8 è 00E8
É 00C9 é 00E9
Ê 00CA ê 00EA
Ë 00CB ë 00EB
17
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
Î 00CE î 00EE
Ï 00CF ï 00EF
Ô 00D4 ô 00F4
Ö 00D6 ö 00F6
Ù 00D9 ù 00F9
Û 00DB û 00FB
Ü 00DC ü 00FC
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
vocabulário:
a 0061 z 007A
b 0062 ã 00E3
d 0064 õ 00F5
e 0065 ø 00F8
f 0066 ŋ 014B
i 0069 œ 0153
k 006B ɐ 0250
l 006C ɔ 0254
m 006D ə 0259
n 006E ɛ 025B
o 006F ɡ 0261
p 0070 ɥ 0265
s 0073 ɲ 0272
t 0074 ʁ 0281
u 0075 ʃ 0283
v 0076 ʒ 0292
w 0077 ẽ 1EBD
y 0079
18
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
• a-z
• A-Z
• ' (apóstrofo)
• - (hífen)
• . (ponto final)
Você também pode usar os seguintes caracteres Unicode nos campos Phrase e SoundsLike:
ä 00E4 Ä 00C4
ö 00F6 Ö 00D6
ü 00FC Ü 00DC
ß 00DF
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
entrada de vocabulário:
b 0062 z 007A
f 0066 ç 00E7
h 0068 ŋ 014B
k 006B ɔ 0254
19
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
m 006D ɛ 025B
n 006E ɪ 026A
p 0070 ʊ 028A
s 0073 ʧ 02A7
t 0074
– 002D थ 0925
. 002E द 0926
ँ 0901 ध 0927
ं 0902 न 0928
ः 0903 प 092A
अ 0905 फ 092B
आ 0906 ब 092C
इ 0907 भ 092D
ई 0908 म 092E
उ 0909 य 092F
ऊ 090A र 0930
ऋ 090B ल 0932
ए 090F व 0935
ऐ 0910 श 0936
ओ 0913 ष 0937
औ 0914 स 0938
क 0915 ह 0939
20
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
ख 0916 ा 093E
ग 0917 ि 093F
घ 0918 ी 0940
ङ 0919 ु 0941
च 091A ू 0942
छ 091B ृ 0943
ज 091C ॅ 0945
झ 091D े 0947
ञ 091E ै 0948
ट 091F ॉ 0949
ठ 0920 ो 094B
ड 0921 ौ 094C
ढ 0922 ् 094D
ण 0923 ज़ 095B
त 0924 ‘ 2018
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
entrada:
b 0098 ɖ 0598
f 0102 ɡ 0609
j 0106 ɦ 0614
k 0107 ɪ 0618
l 0108 ɳ 0627
21
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
m 0109 ɾ 0638
n 0110 ʂ 0642
p 0112 ʈ 0648
r 0114 ʊ 0650
s 0115 ʋ 0651
t 0116 ʤ 0676
• a-z
• A-Z
• ' (apóstrofo)
• - (hífen)
• . (ponto final)
Você também pode usar os seguintes caracteres Unicode nos campos Phrase e SoundsLike:
À 00C0 à 00E0
Ä 00C4 ä 00E4
Ç 00C7 ç 00E7
È 00C8 è 00E8
É 00C9 é 00E9
Ê 00CA ê 00EA
Ë 00CB ë 00EB
Ì 00CC ì 00EC
Ò 00D2 ò 00F2
Ù 00D9 ù 00F9
22
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
Ü 00DC ü 00FC
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
entrada:
b 0062 t 0074
d 0064 u 0075
f 0066 w 0077
i 0069 ɛ 025B
j 006A ɡ 0261
k 006B ɲ 0272
l 006C ʃ 0283
m 006D ʎ 028E
n 006E ʣ 02A3
o 006F ʤ 02A4
23
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
entrada:
e 00065 t 0074
l 006C ø 00F8
m 006D ŋ 0014B
n 006E ɛ 0025B
o 006F ɯ 026F
s 0073
• a-z
• A-Z
• ' (apóstrofo)
24
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
• - (hífen)
• . (ponto final)
Você também pode usar os seguintes caracteres Unicode nos campos Phrase e SoundsLike:
À 00C0 à 00E0
Á 00C1 á 00E1
 00C2 â 00E2
à 00C3 ã 00E3
Ä 00C4 ä 00E4
Ç 00C7 ç 00E7
È 00C8 è 00E8
É 00C9 é 00E9
Ê 00CA ê 00EA
Ë 00CB ë 00EB
Í 00CD í 00ED
Ñ 00D1 ñ 00F1
Ó 00D3 ó 00F3
Ô 00D4 ô 00F4
Õ 00D5 õ 00F5
Ö 00D6 ö 00F6
Ú 00DA ú 00FA
Ü 00DC ü 00FC
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
entrada:
a 0061 v 0076
b 0062 w 0077
e 0065 z 007A
f 0066 õ 00F5
g 0067 ĩ 00129
25
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
i 0069 ũ 00169
k 006B ɔ 0254
l 006C ɛ 025B
m 006D ɲ 0272
n 006E ɾ 027E
o 006F ʁ 0281
p 0070 ʃ 0283
s 0073 ʎ 028E
t 0074 ʒ 0292
u 0075 ẽ 1EBD
– 002D р 0440
. 002E с 0441
а 0430 т 0442
б 0431 у 0443
в 0432 ф 0444
г 0433 х 0445
д 0434 ц 0446
е 0435 ч 0447
ж 0436 ш 0448
з 0437 щ 0449
и 0438 ъ 044A
й 0439 ы 044B
к 043A ь 044C
26
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
л 043B э 044D
м 043C ю 044E
н 043D я 044F
о 043E ё 0451
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
entrada:
b 0062 t 0074
f 0066 v 0076
g 0067 x 0078
i 0069 z 007A
k 006B æ 00E6
l 006C ɛ 025B
m 006D ʃ 0283
n 006E ʊ 028A
p 0070 ʒ 0292
27
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
• a-z
• A-Z
• ' (apóstrofo)
• - (hífen)
• . (ponto final)
Você também pode usar os seguintes caracteres Unicode nos campos Phrase e SoundsLike:
Á 00C1 á 00E1
É 00C9 é 00E9
Í 00CD ë 00ED
Ó 00D3 ó 0XF3
Ú 00DA ú 00FA
Ñ 00D1 ñ 0XF1
ü 00FC
Você pode usar os seguintes caracteres do Alfabeto Fonético Internacional no campo IPA do arquivo de
entrada:
a 0061 r 0072
b 0062 s 0073
d 0064 t 0074
e 0065 u 0075
f 0066 v 0076
g 0067 w 0077
h 0068 x 0078
i 0069 z 007A
28
Amazon Transcribe Guia do desenvolvedor
Conjuntos de caracteres para vocabulários personalizados
j 006A ŋ 014B
k 006B ɲ 0272
l 006C ɾ 027E
m 006D ʃ 0283
n 006E ʝ 029D
o 006F ʧ 02A7
p 0070 θ 03B8
29
Amazon Transcribe Guia do desenvolvedor
Etapa 1: Configurar uma conta
Tópicos
• Etapa 1: Configurar uma conta da AWS e criar um usuário administrador (p. 30)
• Etapa 2: Configurar a AWS Command Line Interface (AWS CLI) (p. 31)
• Etapa 3: conceitos básicos do uso do console (p. 32)
• Etapa 4: Conceitos básicos do uso da API (p. 36)
• Etapa 5: Conceitos básicos do streaming de áudio (p. 40)
Cadastre-se na AWS
Ao se cadastrar na Amazon Web Services (AWS), sua conta da AWS será automaticamente cadastrada
em todos os serviços da AWS, incluindo o Amazon Transcribe. Você será cobrado apenas pelos serviços
que usar.
Com o Amazon Transcribe, você paga apenas pelos recursos que usa. Se você for um cliente novo da
AWS, poderá começar a usar o Amazon Transcribe gratuitamente. Para obter mais informações, consulte
Nível de uso gratuito da AWS.
1. Abra https://portal.aws.amazon.com/billing/signup.
2. Siga as instruções online.
30
Amazon Transcribe Guia do desenvolvedor
Criar um usuário do IAM
Recomendamos que você acesse a AWS usando o AWS Identity and Access Management (IAM), em
vez das credenciais de sua conta da AWS. Para usar o IAM a fim de acessar a AWS, crie um usuário
do IAM, adicione o usuário a um grupo do IAM com permissões administrativas e, em seguida, conceda
permissões administrativas ao usuário do IAM. Em seguida, você pode acessar a AWS usando um URL
especial e as credenciais do usuário do IAM.
Os exercícios de conceitos básicos deste guia pressupõem que você tenha um usuário com privilégios de
administrador, adminuser.
1. Crie um usuário administrador chamado adminuser na conta da AWS. Para obter instruções,
consulte Criar o primeiro usuário do IAM e grupo de administradores no Guia do usuário do IAM.
2. Faça login no Console de gerenciamento da AWS usando um URL especial. Para obter mais
informações, consulte Como os usuários fazem login em sua conta no Guia do usuário do IAM.
Próxima etapa
Etapa 2: Configurar a AWS Command Line Interface (AWS CLI) (p. 31)
1. Baixe e configure a AWS CLI. Para obter instruções, consulte os tópicos a seguir no Guia do usuário
do AWS Command Line Interface:
[profile adminuser]
31
Amazon Transcribe Guia do desenvolvedor
Próxima etapa
Você pode usar esse perfil ao executar os comandos da AWS CLI. Para obter mais informações sobre
perfis nomeados, consulte Perfis nomeados no Guia do usuário do AWS Command Line Interface.
Para obter uma lista das regiões da AWS, consulte Regiões e endpoints no Referência geral do
Amazon Web Services.
3. Verifique a configuração digitando o seguinte comando de ajuda no prompt de comando:
aws help
Próxima etapa
Etapa 3: conceitos básicos do uso do console (p. 32)
Tópicos
• Como criar um trabalho de transcrição (p. 32)
• Como exibir um trabalho de transcrição (p. 33)
• Transcription job name (Nome do trabalho de transcrição) — um nome para o trabalho. O nome
deve ser exclusivo em sua conta da AWS.
• Amazon S3input URL (URL de entrada do Amazon S3) — o local do Amazon S3 do arquivo de
áudio de entrada. O local deve estar na mesma região que o endpoint que você estiver chamando.
• Idioma— escolha o idioma de seu arquivo de entrada.
• Format (Formato) — o formato do arquivo de áudio. Para obter os melhores resultados, você deve
usar um formato sem perda como FLAC ou WAV com codificação de PCM de 16 bits.
• Media sampling rate (Hz) (Taxa de amostragem da mídia (Hz)) — opcional. A taxa de amostragem
de bits do arquivo de áudio. O Amazon Transcribe aceita taxas de amostra entre 8000 Hz e 48000
Hz. Para obter os melhores resultados, você deve usar 8.000 Hz para áudio de baixa fidelidade e
16.000 Hz para áudio de alta fidelidade.
A seguir encontra-se o formulário Create Transcription Job (Criar trabalho de transcrição) preenchido
para um trabalho de exemplo.
32
Amazon Transcribe Guia do desenvolvedor
Como exibir um trabalho de transcrição
33
Amazon Transcribe Guia do desenvolvedor
Como exibir um trabalho de transcrição
A página de informações sobre o trabalho de transcrição tem três seções. A seção Detail (Detalhes)
fornece detalhes sobre o trabalho de transcrição, como nome, informações sobre quando o trabalho será
excluído do servidor e os URLs de entrada e saída. Use o URL de saída para fazer download do resultado
de seu trabalho de transcrição.
A seção Output (Saída) contém a transcrição do áudio enviado ao Amazon Transcribe. Você pode fazer
download da transcrição escolhendo o botão Download transcription (Fazer download da transcrição).
34
Amazon Transcribe Guia do desenvolvedor
Como exibir um trabalho de transcrição
Próxima etapa
35
Amazon Transcribe Guia do desenvolvedor
Etapa 4: Conceitos básicos do uso da API
Tópicos
• Conceitos básicos (AWS Command Line Interface) (p. 36)
• Conceitos básicos (AWS SDK for Python (Boto)) (p. 38)
1. Copie a entrada de voz em um bucket S3. O local deve estar na mesma região que o endpoint que
você está chamando. Este exemplo supõe que o arquivo é um bucket do S3 denominado test-
transcribe e que o nome do arquivo é answer2.wav.
2. Crie um arquivo JSON denominado test-start-command.json que contenha os parâmetros de
entrada para a operação StartTranscriptionJob (p. 114).
{
"TranscriptionJobName": "request ID",
"LanguageCode": "en-US",
"MediaFormat": "wav",
"Media": {
"MediaFileUri": "https://S3 endpoint/test-transcribe/answer2.wav"
}
}
3. Na AWS CLI, execute o seguinte comando. O exemplo é formatado para Unix, Linux e macOS. Para
Windows, substitua o caractere de continuação Unix de barra invertida (\) no final de cada linha por um
circunflexo (^).
{
"TranscriptionJob": {
"TranscriptionJobName": "request ID",
"LanguageCode": "en-US",
36
Amazon Transcribe Guia do desenvolvedor
Conceitos básicos (AWS CLI)
"TranscriptionJobStatus": "IN_PROGRESS",
"Media": {
"MediaFileUri": "https://S3 endpoint/test-transcribe/answer2.wav"
},
"CreationTime": timestamp,
"MediaFormat": "wav"
}
}
{
"Status": "IN_PROGRESS",
"TranscriptionJobSummaries": [
{
"TranscriptionJobName": "request ID",
"LanguageCode": "en-US",
"CreationTime": timestamp,
"TranscriptionJobStatus": "IN_PROGRESS"
}
]
}
1. Quando o status do trabalho for COMPLETED, obtenha os resultados do trabalho. Digite o seguinte
comando:
{
"TranscriptionJob": {
"TranscriptionJobName": "request ID",
"LanguageCode": "en-US",
"TranscriptionJobStatus": "COMPLETED",
"Media": {
"MediaFileUri": "input URI"
},
"CreationTime": timestamp,
"CompletionTime": timestamp,
"Transcript": {
"TranscriptFileUri": "output URI"
}
}
}
37
Amazon Transcribe Guia do desenvolvedor
Conceitos básicos (SDK for Python)
2. Use o URI de saída para obter texto transcrito de arquivos de áudio. A seguir encontra-se o resultado
da transcrição de um pequeno clipe de áudio:
{
"jobName":"job ID",
"accountId":"account ID",
"results": {
"transcripts":[
{
"transcript":" that's no answer"
}
],
"items":[
{
"start_time":"0.180",
"end_time":"0.470",
"alternatives":[
{
"confidence":0.84,
"content":"that's"
}
],
"type": "pronunciation"
},
{
"start_time":"0.470",
"end_time":"0.710",
"alternatives":[
{
"confidence":0.99,
"content":"no"
}
],
"type": "pronunciation"
},
{
"start_time":"0.710",
"end_time":"1.080",
"alternatives":[
{
"confidence":0.874,
"content":"answer"
}
],
"type": "pronunciation"
}
]
},
"status":"COMPLETED"
}
• Instalar a AWS CLI. Para obter mais informações, consulte Etapa 2: Configurar a AWS Command Line
Interface (AWS CLI) (p. 31). Isso instala o AWS SDK for Python (Boto).
• Ter um arquivo de voz no formato .WAV ou .MP4 armazenado em um bucket do S3 que tenha as
permissões apropriadas. Para obter mais informações sobre as permissões necessárias para o Amazon
Transcribe, consulte Permissões necessárias para funções de usuários do IAM (p. 79). O local deve
38
Amazon Transcribe Guia do desenvolvedor
Conceitos básicos (SDK for Python)
estar na mesma região que o endpoint que você está chamando. Este exemplo supõe que o arquivo é
um bucket do Amazon S3 denominado test-transcribe e que o nome do arquivo é answer2.wav.
Quando o trabalho de transcrição for concluído, o resultado será vinculado ao presigned URL do Amazon
S3 que contém a transcrição em formato JSON:
{
"jobName":"job ID",
"accountId":"account ID",
"results": {
"transcripts":[
{
"transcript":" that's no answer",
"confidence":1.0
}
],
"items":[
{
"start_time":"0.180",
"end_time":"0.470",
"alternatives":[
{
"confidence":0.84,
"word":"that's"
}
]
},
{
"start_time":"0.470",
"end_time":"0.710",
"alternatives":[
{
"confidence":0.99,
"word":"no"
}
]
},
{
"start_time":"0.710",
"end_time":"1.080",
"alternatives":[
{
"confidence":0.87,
39
Amazon Transcribe Guia do desenvolvedor
Etapa 5: Conceitos básicos do streaming de áudio
"word":"answer"
}
]
}
]
},
"status":"COMPLETED"
}
/**
* COPYRIGHT:
* <p>
* Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.transcribestreaming;
import org.reactivestreams.Publisher;
import org.reactivestreams.Subscriber;
import org.reactivestreams.Subscription;
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.transcribestreaming.TranscribeStreamingAsyncClient;
import software.amazon.awssdk.services.transcribestreaming.model.*;
import javax.sound.sampled.*;
import java.io.*;
import java.net.URISyntaxException;
import java.nio.ByteBuffer;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicLong;
40
Amazon Transcribe Guia do desenvolvedor
Etapa 5: Conceitos básicos do streaming de áudio
client = TranscribeStreamingAsyncClient.builder()
.credentialsProvider(getCredentials())
.region(REGION)
.build();
CompletableFuture<Void> result =
client.startStreamTranscription(getRequest(16_000),
new AudioStreamPublisher(getStreamFromMic()),
getResponseHandler());
result.get();
client.close();
}
if (!AudioSystem.isLineSupported(info)) {
System.out.println("Line not supported");
System.exit(0);
}
41
Amazon Transcribe Guia do desenvolvedor
Etapa 5: Conceitos básicos do streaming de áudio
.onComplete(() -> {
System.out.println("=== All records stream successfully ===");
})
.subscriber(event -> {
List<Result> results = ((TranscriptEvent)
event).transcript().results();
if (results.size() > 0) {
if (!results.get(0).alternatives().get(0).transcript().isEmpty()) {
System.out.println(results.get(0).alternatives().get(0).transcript());
}
}
})
.build();
}
@Override
public void subscribe(Subscriber<? super AudioStream> s) {
if (this.currentSubscription == null) {
this.currentSubscription = new SubscriptionImpl(s, inputStream);
} else {
this.currentSubscription.cancel();
this.currentSubscription = new SubscriptionImpl(s, inputStream);
}
s.onSubscribe(currentSubscription);
}
}
@Override
public void request(long n) {
if (n <= 0) {
subscriber.onError(new IllegalArgumentException("Demand must be
positive"));
42
Amazon Transcribe Guia do desenvolvedor
Etapa 5: Conceitos básicos do streaming de áudio
demand.getAndAdd(n);
executor.submit(() -> {
try {
do {
ByteBuffer audioBuffer = getNextEvent();
if (audioBuffer.remaining() > 0) {
AudioEvent audioEvent = audioEventFromBuffer(audioBuffer);
subscriber.onNext(audioEvent);
} else {
subscriber.onComplete();
break;
}
} while (demand.decrementAndGet() > 0);
} catch (Exception e) {
subscriber.onError(e);
}
});
}
@Override
public void cancel() {
executor.shutdown();
}
int len = 0;
try {
len = inputStream.read(audioBytes);
if (len <= 0) {
audioBuffer = ByteBuffer.allocate(0);
} else {
audioBuffer = ByteBuffer.wrap(audioBytes, 0, len);
}
} catch (IOException e) {
throw new UncheckedIOException(e);
}
return audioBuffer;
}
43
Amazon Transcribe Guia do desenvolvedor
Transcrição de streaming
A transcrição de streaming do Amazon Transcribe permite enviar um streaming de áudio e receber um
streaming de texto em tempo real. A API facilita para os desenvolvedores adicionarem o recurso de
conversão de fala em texto em tempo real aos seus aplicativos.
• 8 KHz e 16 KHz
• • Inglês EUA (en-US)
• Espanhol dos EUA (es-US)
• Apenas 8 KHz
• • Inglês australiano (en-AU)
• Inglês britânico (en-GB)
• Francês (fr-FR)
• Francês canadense (fr-CA)
A transcrição de streaming do Amazon Transcribe pode ser usada para diversas finalidades. Por exemplo:
• As transcrições de streaming podem gerar legendas em tempo real para mídia de transmissão ao vivo.
• Os advogados podem fazer anotações em tempo real sobre as transcrições de streaming durante os
depoimentos no tribunal.
• O bate-papo de videogame pode ser transcrito em tempo real para que os hosts possam moderar o
conteúdo ou executar análise em tempo real.
• As transcrições de streaming podem fornecer assistência para deficientes auditivos.
A transcrição de streaming não oferece suporte à identificação de canal ou de alto-falante. Use a operação
StartTranscriptionJob (p. 114) se precisar desses recursos.
Se você estiver usando HTTP/2, fornecemos um cliente de streaming HTTP/2 que lida com as novas
tentativas de conexão quando há problemas temporários na rede. Você pode usar esse cliente como
um ponto de partida para seus próprios aplicativos. Para usar o streaming do Amazon Transcribe com o
protocolo WebSocket, você pode criar seu próprio cliente.
A transcrição de streaming pega um streaming dos dados de áudio e os transcreve em tempo real. A
transcrição é retornada para o aplicativo em um streaming de eventos de transcrição.
O Amazon Transcribe divide o streaming de áudio de entrada com base em segmentos naturais de fala,
como uma mudança de orador ou uma pausa no áudio. A transcrição é retornada progressivamente para
seu aplicativo, com cada resposta contendo mais fala transcrita até que todo o segmento seja transcrito.
44
Amazon Transcribe Guia do desenvolvedor
Cada objeto de Resultado na resposta contém um campo chamado IsPartial que indica se a resposta
é uma resposta parcial, com os resultados da transcrição até agora, ou se é uma transcrição completa do
segmento de áudio.
Cada objeto de Resultado também contém o horário de início e de término do período do streaming de
áudio para que você possa, por exemplo, sincronizar a transcrição com o vídeo.
{
"TranscriptResultStream": {
"TranscriptEvent": {
"Transcript": {
"Results": [
{
"Alternatives": [
{
"Items": [
{
"Content": "the",
"EndTime": 0.3799375,
"StartTime": 0.0299375,
"Type": "pronunciation"
},
{
"Content": "amazon",
"EndTime": 0.5899375,
"StartTime": 0.3899375,
"Type": "pronunciation"
},
{
"Content": "is",
"EndTime": 0.7899375,
"StartTime": 0.5999375,
"Type": "pronunciation"
},
{
"Content": "the",
"EndTime": 0.9199375,
"StartTime": 0.7999375,
"Type": "pronunciation"
},
{
"Content": "largest",
"EndTime": 1.0199375,
"StartTime": 0.9299375,
"Type": "pronunciation"
}
],
"Transcript": "the amazon is the largest"
}
],
"EndTime": 1.02,
"IsPartial": true,
"ResultId": "2db76dc8-d728-11e8-9f8b-f2801f1b9fd1",
"StartTime": 0.0199375
45
Amazon Transcribe Guia do desenvolvedor
Codificação de fluxo de evento
}
]
}
}
}
}
Tópicos
• Codificação de fluxo de evento (p. 46)
• Usar streaming do Amazon Transcribe com WebSockets (p. 47)
• Uso de streaming do Amazon Transcribe com HTTP/2 (p. 54)
Cada mensagem consiste em duas seções: o prelúdio e os dados. O prelúdio consiste em:
1. Os cabeçalhos
2. Uma carga
Cada seção termina com uma soma de verificação CRC de inteiro de 4 bytes em big-endian. O Amazon
Transcribe usa CRC32 (geralmente conhecido como GZIP CRC32) para calcular as duas CRCs. Para
obter mais informações sobre CRC32, consulte Especificação do formato de arquivo GZIP versão 4.3.
O diagrama a seguir mostra os componentes que formam uma mensagem e um cabeçalho. Há vários
cabeçalhos por mensagem.
46
Amazon Transcribe Guia do desenvolvedor
Uso de streaming com WebSocket
• Prelúdio: Sempre com tamanho fixo de 8 bytes, dois campos de 4 bytes cada.
• Primeiros 4 bytes: O tamanho total de bytes. Este é o número inteiro big-endian de bytes da
mensagem inteira, incluindo o próprio campo de comprimento de 4 bytes.
• Segundo grupo de 4 bytes: O comprimento de bytes do cabeçalho. Este é o comprimento de bytes
integral do big-endian da porção dos cabeçalhos da mensagem, excluindo o próprio comprimento dos
cabeçalhos.
• CRC do prelúdio: a soma de verificação CRC de 4 bytes para a porção do prelúdio da mensagem,
excluindo a própria CRC. O prelúdio tem uma CRC separada da CRC da mensagem para garantir que o
Amazon Transcribe possa detectar informações de comprimento de byte corrompido imediatamente sem
causar erros como as sobrecargas de buffer.
• Cabeçalhos: Metadados que anotam a mensagem, como o tipo de mensagem, tipo de conteúdo, e
assim por diante. As mensagens têm vários cabeçalhos. Cabeçalhos são pares de valor da chave onde
a chave é uma sequência de caracteres UTF-8. Os cabeçalhos podem aparecer em qualquer ordem na
parte dos cabeçalhos da mensagem e um determinado cabeçalho pode aparecer apenas uma vez. Para
os tipos de cabeçalho necessários, consulte as seções a seguir.
• Carga: o conteúdo de áudio a ser transcrito.
• CRC da mensagem: a soma de verificação CRC de 4 bytes desde o início da mensagem até o início da
soma de verificação. Ou seja, tudo na mensagem, exceto a CRC em si.
Tópicos
• Adicionar uma política para solicitações WebSocket à sua função do IAM (p. 48)
• Criação de uma Pre-Signed URL (p. 48)
• Manipular a resposta de atualização do WebSocket (p. 52)
• Criar uma solicitação de streaming WebSocket (p. 52)
• Manipular uma resposta de streaming WebSocket (p. 53)
• Manipular erros de streaming WebSocket (p. 53)
47
Amazon Transcribe Guia do desenvolvedor
Adicionar uma política para solicitações
WebSocket à sua função do IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "transcribestreaming",
"Effect": "Allow",
"Action": "transcribe:StartStreamTranscriptionWebSocket",
"Resource": "*"
}
]
}
O URL tem o seguinte formato: Quebras de linha foram adicionadas para uma melhor leitura.
GET https://transcribestreaming.region.amazonaws.com:8443/stream-transcription-websocket
?language-code=languageCode
&X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=Signature Version 4 credential scope
&X-Amz-Date=date
&X-Amz-Expires=time in seconds until expiration
&X-Amz-Security-Token=security-token
&X-Amz-Signature=Signature Version 4 signature
&X-Amz-SignedHeaders=host
&media-encoding=mediaEncoding
&sample-rate=mediaSampleRateHertz
&session-id=sessionId
&vocabulary-name=vocabularyName
• language-code – o código do idioma do áudio de entrada. Os valores válidos são en-GB, en-US, es-
US, fr-CA, e fr-FR.
• media-encoding – a codificação usada para o áudio de entrada. O único valor válido é pcm.
• sample-rate – a taxa da amostragem do áudio de entrada em Hertz. Sugerimos que você use 8000 Hz
para áudio de baixa qualidade e 16000 Hz para áudio de alta qualidade. A taxa de amostragem deve
corresponder à taxa de amostragem no arquivo de áudio.
• sessionId – opcional. Um identificador para a sessão de transcrição. Se você não fornecer um ID de
sessão, o Amazon Transcribe gerará um para você e o retornará na resposta.
• vocabulary-name – opcional. O nome do vocabulário a ser usado no processamento da tarefa de
transcrição, se houver.
48
Amazon Transcribe Guia do desenvolvedor
Criação de uma Pre-Signed URL
• X-Amz-Algorithm – o algoritmo que você está usando no processo de assinatura. O único valor válido é
AWS4-HMAC-SHA256.
• X-Amz-Credential – uma string separada por barras ("/"), formada concatenando seu ID de chave
de acesso e seus componentes de escopo de credencial. O escopo de credencial inclui a data no
formato AAAAMMDD, a Região da AWS, o nome do serviço e uma string de encerramento especial
(aws4_request).
• X-Amz-Date – a data e a hora em que a assinatura foi criada. Gere a data e a hora seguindo as
instruções em Tratamento de datas no Signature versão 4 na Referência geral da Amazon Web
Services.
• X-Amz-Expires – o tempo, em segundos, até que as credenciais expirem. O valor máximo é 300
segundos (5 minutos).
• X-Amz-Security-Token – opcional. Um token Signature versão 4 para credenciais temporárias. Se você
especificar esse parâmetro, inclua-o na solicitação canônica. Para obter mais informações, consulte
Solicitação de credenciais de segurança temporárias no Guia do usuário do AWS Identity and Access
Management.
• X-Amz-Signature – a assinatura do Signature versão 4 que você gerou para a solicitação.
• X-Amz-SignedHeaders – os cabeçalhos que são assinados ao criar a assinatura para a solicitação. O
único valor válido é host.
Para criar o URL para a solicitação e criar a assinatura do Signature versão 4, siga as etapas a seguir. Os
exemplos estão em pseudocódigo.
Crie uma string que inclua as informações da solicitação em um formato padronizado. Isso garante que,
quando a AWS receber a solicitação, ela poderá calcular a mesma assinatura que você calcular na Tarefa
3. Para obter mais informações, consulte Criar uma solicitação canônica para o Signature versão 4 na
Referência geral da Amazon Web Services.
ɛ HTTP verb
method = "GET"
ɛ Service name
service = "transcribe"
ɛ AWS Region
region = "AWS Region"
ɛ Amazon Transcribe streaming endpoint
endpoint = "https://transcribestreaming.region.amazonaws.com:8443"
ɛ Host
host = "transcribestreaming.region.amazonaws.com:8443"
ɛ Date and time of request
amz-date = YYYMMDD'T'HHMMSS'Z'
ɛ Date without time for credential scope
datestamp = YYYYMMDD
2. Crie um URI canônico. O URI canônico é a parte do URI entre o domínio e a string de consulta.
canonical_uri = "/stream-transcription-websocket"
3. Crie cabeçalhos canônicos e cabeçalhos assinados. Observe o "\n" que vem no final dos cabeçalhos
canônicos.
49
Amazon Transcribe Guia do desenvolvedor
Criação de uma Pre-Signed URL
signed_headers = "host"
4. Faça uma correspondência entre o algoritmo e o algoritmo de hash. Você deve usar SHA-256.
algorithm = "AWS4-HMAC-SHA256"
5. Crie o escopo da credencial, que define o escopo da chave derivada como a data, a Região e o
serviço ao qual a solicitação foi feita.
6. Crie a string de consulta canônica. Os valores de string de consulta devem ser codificados pelo URL e
classificados por nome.
7. Crie um hash da carga. Para uma solicitação GET, a carga é uma string vazia.
payload_hash = HashSHA256(("").Encode("utf-8")).HexDigest()
A string para assinar inclui metainformações sobre sua solicitação. Você usará a string para assinar na
próxima etapa, quando calcular a assinatura da solicitação. Para obter mais informações, consulte Criar
uma string de assinatura para o Signature versão 4 na Referência geral da Amazon Web Services.
• Crie a string.
string_to_sign=algorithm + "\n"
+ amz_date + "\n"
+ credential_scope + "\n"
+ HashSHA256(canonical_request.Encode("utf-8").HexDigest()
Você derivará uma chave de assinatura da sua chave de acesso secreta da AWS. Para obter um grau
maior de proteção, a chave derivada é específica à data, ao serviço e à Região da AWS. Você usa a
chave derivada para assinar a solicitação. Para obter mais informações, consulte Calcular a assinatura do
Signature versão 4 da AWS na Referência geral da Amazon Web Services.
50
Amazon Transcribe Guia do desenvolvedor
Criação de uma Pre-Signed URL
O código pressupõe que você tenha implementado a função GetSignatureKey para gerar uma chave de
assinatura. Para obter mais informações e exemplos de funções, consulte Exemplos de como derivar uma
chave de assinatura do Signature versão 4 na Referência geral da Amazon Web Services.
A função HMAC(key, data) representa uma função HMAC-SHA256 que retorna os resultados em
formato binário.
Depois de calcular a assinatura, adicione-a à string de consulta. Para obter mais informações, consulte
Adicione a assinatura à solicitação HTTP na Referência geral da Amazon Web Services.
Você usa o URL solicitado com sua biblioteca WebSocket para fazer a solicitação ao serviço do Amazon
Transcribe.
Host: transcribestreaming.region.amazonaws.com:8443
Connection: Upgrade
Upgrade: websocket
Origin: request source
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: random key
51
Amazon Transcribe Guia do desenvolvedor
Manipular a resposta de atualização do WebSocket
Veja a seguir a resposta do Amazon Transcribe. Quebras de linha foram adicionadas ao cabeçalho
websocket-location para uma melhor leitura.
Connection: upgrade
Upgrade: websocket
websocket-origin: https://transcribestreaming.region.amazonaws.com:8443
websocket-location: transcribestreaming.region.amazonaws.com:8443/stream-transcription-
websocket?
X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=AKIDEXAMPLE%2F20190117%2Fregion%2Ftranscribe
%2Faws4_request
&X-Amz-Date=date and time
&X-Amz-Expires=expiration length
&X-Amz-SignedHeaders=host
&language-code=language code
&media-encoding=media encoding
&sample-rate=media sample rate
&X-Amz-Signature=signature
x-amzn-RequestId: RequestId
x-amzn-SessionId: SessionId
Strict-Transport-Security: max-age=31536000
sec-websocket-accept: token
Cada quadro de dados contém três cabeçalhos combinados com um bloco de bytes de áudio bruto. A
tabela a seguir lista e descreve os cabeçalhos.
52
Amazon Transcribe Guia do desenvolvedor
Manipular uma resposta de streaming WebSocket
13 :content-type 7 24 application/
octet-stream
11 :event-type 7 10 AudioEvent
13 :message-type 7 5 event
Para finalizar o fluxo de dados de áudio, envie um bloco de áudio vazio em uma mensagem com
codificação de fluxo de evento.
13 :content-type 7 24 application/octet-
stream
11 :event-type 7 15 TranscriptEvent
13 :message-type 7 5 event
Quando você decodifica a resposta binária, você obtém uma estrutura JSON com os resultados da
transcrição. Para obter um exemplo de resposta JSON, consulte Transcrição de streaming (p. 44).
13 :content-type 7 24 application/octet-
stream
13 :message-type 7 9 exception
53
Amazon Transcribe Guia do desenvolvedor
Uso de streaming com HTTP/2
• BadRequestException – ocorreu um erro de cliente quando o fluxo foi criado ou ocorreu um erro
durante o streaming de dados. Certifique-se de que seu cliente esteja pronto para aceitar dados e tente
sua solicitação novamente.
• InternalFailureException – o Amazon Transcribe teve um problema durante o handshake com o
cliente. Tente sua solicitação novamente.
• LimitExceededException – o cliente excedeu o limite de fluxo simultâneo. Para obter mais
informações, consulte Limites do Amazon Transcribe na Referência geral da Amazon Web Services.
Reduza o número de fluxos que você está transcrevendo.
• UnrecognizedClientException – a solicitação de atualização WebSocket foi assinada com uma
chave de acesso ou uma chave secreta incorreta. Certifique-se de que você esteja criando corretamente
a chave de acesso e tente sua solicitação novamente.
Além disso, o Amazon Transcribe pode retornar qualquer erro de serviço comum. Para obter uma lista,
consulte Erros comuns.
Quando o Amazon Transcribe usa o protocolo HTTP/2 para a transcrição de streamings, os componentes
principais da solicitação do streaming são:
• Um quadro de cabeçalho. Ele contém os cabeçalhos HTTP/2 para a solicitação e uma assinatura no
cabeçalho authorization que o Amazon Transcribe usa como assinatura de propagação para assinar
os seguintes quadros de dados.
• Um ou mais quadros de mensagem na codificação de fluxo de evento. O quadro contém metadados e os
bytes de áudio brutos.
• Um quadro final. Esta é uma mensagem assinada na codificação do fluxo de eventos com um corpo
vazio.
Solicitação de streaming
Para fazer uma solicitação de streaming, utilize a operação StartStreamTranscription (p. 122).
Quadro de cabeçalho
O quadro do cabeçalho é o quadro da autorização para a transcrição de streaming. O Amazon Transcribe
usa o valor do cabeçalho authorization como a propagação para gerar uma cadeia de cabeçalhos de
autorização para os quadros de dados na solicitação.
Cabeçalhos obrigatórios
O quadro de cabeçalho de uma solicitação para o Amazon Transcribe requer os seguintes cabeçalhos
HTTP/2:
54
Amazon Transcribe Guia do desenvolvedor
Solicitação de streaming
host: transcribestreaming.region.amazonaws.com
authorization: Generated value
content-type: application/vnd.amazon.eventstream
x-amz-target: com.amazonaws.transcribe.Transcribe.StartStreamTranscription
x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-EVENTS
x-amz-date: Date
x-amzn-transcribe-language-code: en-US
x-amzn-transcribe-media-encoding: pcm
x-amzn-transcribe-sample-rate: Sample rate
transfer-encoding: chunked
• host: Use a região da AWS em que você está chamando o Amazon Transcribe. Para obter uma lista
das regiões válidas, consulte Regiões e endpoints da AWS na Referência geral da Amazon Web
Services.
• authorization: A assinatura do Signature versão 4 para a solicitação. Para obter mais informações
sobre como criar uma assinatura, consulte Assinatura de solicitações da AWS com Signature versão 4
na Referência geral da Amazon Web Services.
• x-amz-date: Gerar uma data e hora para a solicitação seguindo as instruções em Tratamento de datas
no Signature versão 4 na Referência geral da Amazon Web Services.
Para obter mais informações sobre os cabeçalhos específicos do Amazon Transcribe, consulte a operação
StartStreamTranscription (p. 122).
Quadros de dados
Cada solicitação contém um ou mais quadros de dados. Os quadros de dados usam codificação de fluxo
de evento. A codificação oferece suporte a transmissão de dados bidirecional entre um cliente e um
servidor.
1. Combine os dados de áudio brutos com metadados para criar a carga da solicitação.
2. Combine a carga com uma assinatura para formar a mensagem de evento enviada para o Amazon
Transcribe.
55
Amazon Transcribe Guia do desenvolvedor
Solicitação de streaming
Para criar a carga para a mensagem do evento, use um buffer no formato de byte bruto.
Crie a mensagem
Crie um quadro de dados usando a carga do evento de áudio para enviar para o Amazon Transcribe.
O quadro de dados contém os cabeçalhos de codificação de evento que incluem a data atual e uma
assinatura para o bloco de áudio e para o evento de áudio. Para indicar para o Amazon Transcribe
que o fluxo de áudio está concluído, envie um quadro de dados vazio que contenha apenas a data e a
assinatura.
Para criar a assinatura para o quadro de dados, primeiro crie uma string para assinar e depois calcule a
assinatura para o evento. Construa a string para que assine como a seguir:
String stringToSign =
"AWS4-HMAC-SHA256-PAYLOAD" +
"\n" +
DATE +
"\n" +
KEYPATH +
"\n" +
Hex(priorSignature) +
"\n" +
HexHash(nonSignatureHeaders) +
"\n" +
HexHash(payload);
• DATE: A data e a hora atuais em Tempo Universal Coordenado (UTC) e usando o formato ISO 8601.
Não inclua milissegundos na data. Por exemplo, 20190127T223754Z é 22:37:54 em 1/27/2019.
• KEYPATH: O escopo da assinatura no formato date/region/service/aws4_request. Por exemplo,
20190127/us-east-1/transcribe/aws4_request.
• priorSignature: A assinatura para o quadro anterior. Para o primeiro quadro de dados, use a
assinatura do quadro do cabeçalho.
• nonSignatureHeaders: O cabeçalho DATE codificado como uma string.
• payload: O buffer de byte contendo os dados do evento de áudio.
• Hex: uma função que codifica sua entrada em uma representação hexadecimal.
• HexHash: uma função que primeiro cria um hash SHA-256 da sua entrada e usa a função Hex para
codificar o hash.
56
Amazon Transcribe Guia do desenvolvedor
Resposta de streaming
Depois que você tiver construído a string para assinar, assine usando a chave que você obteve para o
Signature versão 4, da seguinte forma. Para obter detalhes, consulte Exemplos de como obter uma chave
de assinatura do Signature versão 4 na Referência geral da Amazon Web Services.
• HMACSHA256: uma função que cria uma assinatura usando a função de hash SHA-256.
• derivedSigningKey: a chave de assinatura do Signature versão 4.
• stringToSign: A string que você calculou para os dados do quadro.
Depois de ter calculado a assinatura para o quadro de dados, construa um buffer de bytes que contenha a
data, a assinatura e a carga do evento de áudio. Envie a matriz de bytes para o Amazon Transcribe para
transcrição.
End Frame
Para indicar que o fluxo de áudio está concluído, envie um quadro final para o Amazon Transcribe. O
quadro final é um quadro de dados com uma carga vazia. Você pode construir o quadro final da mesma
forma que constrói um quadro de dados.
Resposta de streaming
As respostas do Amazon Transcribe também são enviadas usando codificação de fluxo de evento. Use
essas informações para decodificar uma resposta da operação StartStreamTranscription (p. 122).
Resposta da transcrição
Uma resposta de transcrição tem codificação de fluxo de evento. Ela contém o prelúdio padrão e os
seguintes cabeçalhos:
Para obter mais detalhes, consulte Codificação de fluxo de evento (p. 46).
:content-type: "application/json"
:event-type: "TranscriptEvent"
:message-type: "event"
Para ver um exemplo de estrutura JSON retornada pelo Amazon Transcribe, consulte Uso de streaming do
Amazon Transcribe com HTTP/2 (p. 54).
57
Amazon Transcribe Guia do desenvolvedor
Exemplo de solicitação e resposta
Resposta de exceção
Se houver um erro no processamento do seu fluxo de transcrição, o Amazon Transcribe envia uma
resposta de exceção. A resposta tem codificação de fluxo de evento. Para obter mais detalhes, consulte
Codificação de fluxo de evento (p. 46).
:content-type: "application/json"
:event-type: "BadRequestException"
:message-type: "exception"
Exception message
HTTP/2.0 200
58
Amazon Transcribe Guia do desenvolvedor
Exemplo de solicitação e resposta
x-amzn-transcribe-language-code: en-US
x-amzn-transcribe-sample-rate: Sample rate
x-amzn-request-id: 8a08df7d-5998-48bf-a303-484355b4ab4e
x-amzn-transcribe-session-id: b4526fcf-5eee-4361-8192-d1cb9e9d6887
x-amzn-transcribe-media-encoding: pcm
x-amzn-RequestId: 8a08df7d-5998-48bf-a303-484355b4ab4e
content-type: application/vnd.amazon.eventstream
:content-type: "application/octet-stream"
:event-type: "AudioEvent"
:message-type: "event"
UklGRjzxPQBXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YVTwPQAAAAAAAAAAAAAAAAD//wIA/f8EAA==
:date: 2019-01-29T01:56:17.291Z
:chunk-signature: signature
AAAA0gAAAIKVoRFcTTcjb250ZW50LXR5cGUHABhhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0LOmV2ZW50LXR5
cGUHAApBdWRpb0V2ZW50DTptZXNzYWdlLXR5cGUHAAVldmVudAxDb256ZW50LVR5cGUHABphcHBsaWNhdGlv
bi94LWFtei1qc29uLTEuMVJJRkY88T0AV0FWRWZtdCAQAAAAAQABAIA+AAAAfQAAAgAQAGRhdGFU8D0AAAAA
AAAAAAAAAAAA//8CAP3/BAC7QLFf
AAAAUwAAAEP1RHpYBTpkYXRlCAAAAWiXUkMLEDpjaHVuay1zaWduYXR1cmUGACCt6Zy+uymwEK2SrLp/zVBI
5eGn83jdBwCaRUBJA+eaDafqjqI=
Para ver os resultados de transcrição, decodifique os bytes brutos usando a codificação de fluxo de
eventos:
59
Amazon Transcribe Guia do desenvolvedor
Cliente de nova tentativa HTTP/2
:event-type: "TranscriptEvent"
:content-type: "application/json"
:message-type: "event"
{"Transcript":{"Results":[results]}}
Para ver um exemplo de estrutura JSON retornada pelo Amazon Transcribe, consulte Codificação de fluxo
de evento (p. 46).
:date: 2019-01-29T01:56:17.291Z
:chunk-signature: signature
O cliente de nova tentativa tem duas propriedades que controlam o comportamento do cliente. É possível
definir:
• O número máximo de vezes que o cliente deve tentar antes de falhar. Reduza esse valor para que o
aplicativo pare de tentar novamente mais cedo quando houver problemas de rede. O padrão é 10.
• O tempo em milissegundos que o cliente deve esperar entre novas tentativas. Períodos mais longos
aumentam o risco de perda de dados, e períodos mais curtos aumentam o risco de seu aplicativo ser
limitado. O padrão é 100 milissegundos.
Veja o cliente a seguir. É possível copiar esse código para o aplicativo ou usá-lo como ponto de partida
para seu próprio cliente.
/**
* COPYRIGHT:
* <p>
* Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* or in the "license" file accompanying this file. This file is distributed
60
Amazon Transcribe Guia do desenvolvedor
Cliente de nova tentativa HTTP/2
import org.reactivestreams.Publisher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
import software.amazon.awssdk.auth.signer.EventStreamAws4Signer;
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.transcribestreaming.TranscribeStreamingAsyncClient;
import software.amazon.awssdk.services.transcribestreaming.model.AudioStream;
import software.amazon.awssdk.services.transcribestreaming.model.BadRequestException;
import
software.amazon.awssdk.services.transcribestreaming.model.StartStreamTranscriptionRequest;
import
software.amazon.awssdk.services.transcribestreaming.model.StartStreamTranscriptionResponseHandler;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
/**
* Build a client wrapper around the Amazon Transcribe client to retry
* on an exception that can be retried.
*/
public class TranscribeStreamingRetryClient {
/**
* Create a TranscribeStreamingRetryClient with given credential and configuration
*
* @param creds Creds to use for transcription
* @param endpoint Endpoint to use for transcription
* @param region Region to use for transcriptions
* @throws URISyntaxException if the endpoint is not a URI
*/
public TranscribeStreamingRetryClient(AwsCredentialsProvider creds,
String endpoint, Region region) throws
URISyntaxException {
this(TranscribeStreamingAsyncClient.builder()
.overrideConfiguration(
c -> c.putAdvancedOption(
SdkAdvancedClientOption.SIGNER,
EventStreamAws4Signer.create()))
.credentialsProvider(creds)
.endpointOverride(new URI(endpoint))
.region(region)
.build());
}
/**
61
Amazon Transcribe Guia do desenvolvedor
Cliente de nova tentativa HTTP/2
/**
* Get Max retries
*
* @return Max retries
*/
public int getMaxRetries() {
return maxRetries;
}
/**
* Set Max retries
*
* @param maxRetries Max retries
*/
public void setMaxRetries(int maxRetries) {
this.maxRetries = maxRetries;
}
/**
* Get sleep time
*
* @return sleep time between retries
*/
public int getSleepTime() {
return sleepTime;
}
/**
* Set sleep time between retries
*
* @param sleepTime sleep time
*/
public void setSleepTime(int sleepTime) {
this.sleepTime = sleepTime;
}
/**
* Initiate a Stream Transcription with retry.
*
* @param request StartStreamTranscriptionRequest to use to start transcription
* @param publisher The source audio stream as Publisher
* @param responseHandler StreamTranscriptionBehavior object that defines how the
response needs to be handled.
* @return Completable future to handle stream response.
*/
recursiveStartStream(rebuildRequestWithSession(request), publisher,
responseHandler, finalFuture, 0);
62
Amazon Transcribe Guia do desenvolvedor
Cliente de nova tentativa HTTP/2
return finalFuture;
}
/**
* Recursively call startStreamTranscription() to be called till the request is
completed or till we run out of retries.
*
* @param request StartStreamTranscriptionRequest
* @param publisher The source audio stream as Publisher
* @param responseHandler StreamTranscriptionBehavior object that defines how the
response needs to be handled.
* @param finalFuture final future to finish on completing the chained futures.
* @param retryAttempt Current attempt number
*/
private void recursiveStartStream(final StartStreamTranscriptionRequest request,
final Publisher<AudioStream> publisher,
final StreamTranscriptionBehavior responseHandler,
final CompletableFuture<Void> finalFuture,
final int retryAttempt) {
CompletableFuture<Void> result = client.startStreamTranscription(request,
publisher,
getResponseHandler(responseHandler));
result.whenComplete((r, e) -> {
if (e != null) {
log.debug("Error occured:", e);
private StartStreamTranscriptionRequest
rebuildRequestWithSession(StartStreamTranscriptionRequest request) {
return StartStreamTranscriptionRequest.builder()
.languageCode(request.languageCode())
.mediaEncoding(request.mediaEncoding())
.mediaSampleRateHertz(request.mediaSampleRateHertz())
.sessionId(UUID.randomUUID().toString())
.build();
}
/**
* StartStreamTranscriptionResponseHandler implements subscriber of transcript stream
* Output is printed to standard output
*/
private StartStreamTranscriptionResponseHandler getResponseHandler(
63
Amazon Transcribe Guia do desenvolvedor
Cliente de nova tentativa HTTP/2
StreamTranscriptionBehavior transcriptionBehavior) {
final StartStreamTranscriptionResponseHandler build =
StartStreamTranscriptionResponseHandler.builder()
.onResponse(r -> {
transcriptionBehavior.onResponse(r);
})
.onError(e -> {
//Do nothing here. Don't close any streams that shouldn't be cleaned up
yet.
})
.onComplete(() -> {
//Do nothing here. Don't close any streams that shouldn't be cleaned up
yet.
})
/**
* Check if the exception can be retried.
*
* @param e Exception that occurred
* @return True if the exception is retriable
*/
private boolean isExceptionRetriable(Throwable e) {
e.printStackTrace();
return nonRetriableExceptions.contains(e.getClass());
}
/**
* COPYRIGHT:
* <p>
* Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.transcribestreaming.retryclient;
64
Amazon Transcribe Guia do desenvolvedor
Cliente de nova tentativa HTTP/2
import
software.amazon.awssdk.services.transcribestreaming.model.StartStreamTranscriptionResponse;
import software.amazon.awssdk.services.transcribestreaming.model.TranscriptResultStream;
/**
* Defines how a stream response should be handled.
* You should build a class implementing this interface to define the behavior.
*/
public interface StreamTranscriptionBehavior {
/**
* Defines how to respond when encountering an error on the stream transcription.
*
* @param e The exception
*/
void onError(Throwable e);
/**
* Defines how to respond to the Transcript result stream.
*
* @param e The TranscriptResultStream event
*/
void onStream(TranscriptResultStream e);
/**
* Defines what to do on initiating a stream connection with the service.
*
* @param r StartStreamTranscriptionResponse
*/
void onResponse(StartStreamTranscriptionResponse r);
/**
* Defines what to do on stream completion
*/
void onComplete();
}
package com.amazonaws.transcribestreaming.retryclient;
import com.amazonaws.transcribestreaming.retryclient.StreamTranscriptionBehavior;
import software.amazon.awssdk.services.transcribestreaming.model.Result;
import
software.amazon.awssdk.services.transcribestreaming.model.StartStreamTranscriptionResponse;
import software.amazon.awssdk.services.transcribestreaming.model.TranscriptEvent;
import software.amazon.awssdk.services.transcribestreaming.model.TranscriptResultStream;
import java.util.List;
/**
* Implementation of StreamTranscriptionBehavior to define how a stream response should be
handled.
*
* COPYRIGHT:
*
* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
65
Amazon Transcribe Guia do desenvolvedor
Uso do cliente de nova tentativa HTTP/2
@Override
public void onError(Throwable e) {
System.out.println("=== Failure Encountered ===");
e.printStackTrace();
}
@Override
public void onStream(TranscriptResultStream e) {
// EventResultStream has other fields related to the the timestamp of the
transcripts in it.
// Please refer to the javadoc of TranscriptResultStream for more details
List<Result> results = ((TranscriptEvent) e).transcript().results();
if (results.size() > 0) {
if (results.get(0).alternatives().size() > 0)
if (!results.get(0).alternatives().get(0).transcript().isEmpty()) {
System.out.println(results.get(0).alternatives().get(0).transcript());
}
}
}
@Override
public void onResponse(StartStreamTranscriptionResponse r) {
@Override
public void onComplete() {
System.out.println("=== All records stream successfully ===");
}
Próxima etapa
Uso do cliente de nova tentativa HTTP/2 (p. 66)
• Copie o cliente de nova tentativa para seu espaço de trabalho. Consulte Código do cliente de nova
tentativa de streaming (p. 60).
• Copie a interface do cliente de nova tentativa para seu espaço de trabalho. Implemente a interface,
ou use a implementação de exemplo. Consulte Código da interface do cliente de nova tentativa de
streaming (p. 64).
• Copie o aplicativo de exemplo para seu espaço de trabalho Compile e execute o aplicativo.
66
Amazon Transcribe Guia do desenvolvedor
Uso do cliente de nova tentativa HTTP/2
/**
* COPYRIGHT:
* <p>
* Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.transcribestreaming.retryclient;
import com.amazonaws.transcribestreaming.TranscribeStreamingDemoApp;
import org.reactivestreams.Publisher;
import org.reactivestreams.Subscriber;
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.transcribestreaming.model.AudioStream;
import software.amazon.awssdk.services.transcribestreaming.model.LanguageCode;
import
software.amazon.awssdk.services.transcribestreaming.model.StartStreamTranscriptionRequest;
import javax.sound.sampled.LineUnavailableException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
67
Amazon Transcribe Guia do desenvolvedor
Uso do cliente de nova tentativa HTTP/2
/**
* Synchronous wait for stream to close, and close client connection
*/
result.get();
client.close();
}
@Override
public void subscribe(Subscriber<? super AudioStream> s) {
if (s.currentSubscription == null) {
this.currentSubscription = new
TranscribeStreamingDemoApp.SubscriptionImpl(s, inputStream);
} else {
this.currentSubscription.cancel();
this.currentSubscription = new
TranscribeStreamingDemoApp.SubscriptionImpl(s, inputStream);
}
s.onSubscribe(currentSubscription);
}
}
}
68
Amazon Transcribe Guia do desenvolvedor
Proteção de dados
• Segurança da nuvem – A AWS é responsável pela proteção da infraestrutura que executa serviços
da AWS na nuvem da AWS. A AWS também fornece serviços que você pode usar com segurança.
Auditores de terceiros testam e verificam regularmente a eficácia da nossa segurança como parte dos
programas de conformidade da AWS. Para saber mais sobre os programas de conformidade que se
aplicam ao Amazon Transcribe, consulte Serviços da AWS no escopo pelo programa de conformidade.
• Segurança na nuvem – Sua responsabilidade é determinada pelo serviço da AWS que você usa. Você
também é responsável por outros fatores, incluindo a confidencialidade de seus dados, os requisitos de
sua empresa e as leis e regulamentos aplicáveis.
Esta seção ajuda você a entender como aplicar o modelo de responsabilidade compartilhada ao usar o
Amazon Transcribe. Os tópicos a seguir mostram como configurar o Amazon Transcribe para atender a
seus objetivos de segurança e conformidade. Você também aprende a usar outros serviços da AWS que
ajudam a monitorar e a proteger os recursos do Amazon Transcribe.
Tópicos
• Proteção de dados no Amazon Transcribe (p. 69)
• Identity and Access Management para Amazon Transcribe (p. 71)
• Registro em log e monitoramento no Amazon Transcribe (p. 83)
• Validação de conformidade do Amazon Transcribe (p. 88)
• Resiliência no Amazon Transcribe (p. 88)
• Segurança da infraestrutura no Amazon Transcribe (p. 89)
Para fins de proteção de dados, recomendamos que você proteja as credenciais da conta da AWS e
configure contas de usuário individuais com o AWS Identity and Access Management (IAM), de modo que
cada usuário receba somente as permissões necessárias para cumprir suas funções. Recomendamos
também que você proteja seus dados das seguintes formas:
69
Amazon Transcribe Guia do desenvolvedor
Criptografia em repouso
• Configure a API e o registro em log das atividades do usuário com o AWS CloudTrail.
• Use as soluções de criptografia da AWS, juntamente com todos os controles de segurança padrão nos
serviços da AWS.
• Use serviços gerenciados de segurança avançada, como o Amazon Macie, que ajudam a localizar e
proteger dados pessoais que são armazenados no Amazon Simple Storage Service (Amazon S3).
É altamente recomendável que você nunca coloque informações de identificação confidenciais, como os
números de contas de seus clientes, em campos de formato livre, como um campo Name (Nome). Isso
inclui quando você trabalhar com o Amazon Transcribe ou outros serviços da AWS usando o console,
a API, a AWS CLI ou os AWS SDKs. Todos os dados inseridos por você no Amazon Transcribe ou em
outros serviços podem ser separados para inclusão em logs de diagnóstico. Ao fornecer um URL para um
servidor externo, não inclua informações de credenciais no URL para validar a solicitação a esse servidor.
Para obter mais informações sobre a proteção de dados, consulte a postagem AWS Shared Responsibility
Model and GDPR no Blog de segurança da AWS.
Tópicos
• Criptografia em repouso (p. 70)
• Criptografia em trânsito (p. 70)
• Gerenciamento de chaves (p. 70)
Criptografia em repouso
O Amazon Transcribe usa a chave padrão do Amazon S3 (SSE-S3) para a criptografia no lado do servidor
de transcrições colocadas em seu bucket do S3.
Ao usar a operação StartTranscriptionJob (p. 114), você pode especificar sua própria chave AWS Key
Management Service para criptografar a saída de uma tarefa de transcrição.
O Amazon Transcribe usa um volume do Amazon EBS criptografado com a chave padrão.
Criptografia em trânsito
Amazon Transcribe usa o TLS 1.2 com certificados AWS para criptografar dados em trânsito. Isso inclui a
transcrição de streaming.
Gerenciamento de chaves
O Amazon Transcribe trabalha com o AWS Key Management Service (KMS) para fornecer criptografia
aprimorada para seus dados. O Amazon S3 já permite criptografar o áudio de entrada ao criar
uma tarefa de transcrição. A integração com o KMS permite criptografar a saída da operação
StartTranscriptionJob (p. 114).
Se você não especificar uma chave de criptografia, a saída da tarefa de transcrição será criptografada com
a chave padrão do Amazon S3 (SSE-S3).
Se você não especificar uma chave de criptografia, a saída da tarefa de transcrição será criptografada com
a chave padrão do Amazon S3 (SSE-S3).
70
Amazon Transcribe Guia do desenvolvedor
Identity and Access Management
2. Escolha se a chave gerenciada pelo cliente KMS (CMK) é da conta que você está usando no
momento ou de uma conta diferente. Se desejar usar uma chave da conta atual, escolha a chave
de KMS key ID (ID da chave KMS). Se estiver usando uma chave de uma conta diferente, você
precisará inserir o ARN da chave. Para usar uma chave de uma conta diferente, o chamador deve ter
permissões kms:Encrypt para a chave KMS.
Você pode usar uma das seguintes opções para identificar uma chave KMS na conta atual:
Você pode usar uma das seguintes opções para identificar uma chave KMS na conta atual ou em outra
conta:
Tópicos
• Público (p. 72)
• Autenticação com identidades (p. 72)
71
Amazon Transcribe Guia do desenvolvedor
Público
Público
O uso do AWS Identity and Access Management (IAM) varia, dependendo do trabalho que você realiza no
Amazon Transcribe.
Usuário do serviço – se você usar o Amazon Transcribe para fazer sua tarefa, o administrador fornecerá as
credenciais e as permissões de que você precisa. À medida que usar mais recursos do Amazon Transcribe
para fazer seu trabalho, você poderá precisar de permissões adicionais. Entender como o acesso é
gerenciado pode ajudar você a solicitar as permissões corretas ao seu administrador. Se não for possível
acessar um recurso no Amazon Transcribe, consulte Solução de problemas de identidade e acesso do
Amazon Transcribe (p. 81).
Administrador do serviço – se você for o responsável pelos recursos do Amazon Transcribe em sua
empresa, você provavelmente terá acesso total ao Amazon Transcribe. Seu trabalho é determinar
quais recursos do Amazon Transcribe seus funcionários devem acessar. Assim, é necessário enviar
solicitações ao administrador do IAM para alterar as permissões dos usuários de seu serviço. Revise as
informações nesta página para entender os conceitos básicos do IAM. Para saber mais sobre como sua
empresa pode usar o IAM com o Amazon Transcribe, consulte Como o Amazon Transcribe funciona com o
IAM (p. 76).
Administrador do IAM – se você é um administrador do IAM, talvez queira saber detalhes sobre como pode
escrever políticas para gerenciar o acesso ao Amazon Transcribe. Para visualizar exemplos de políticas
baseadas em identidade do Amazon Transcribe que podem ser usadas no IAM, consulte Exemplos de
políticas baseadas em identidade do Amazon Transcribe (p. 77).
Você deve ser autenticado (fazer login na AWS) como o Usuário raiz da conta da AWS, um usuário do
IAM, ou assumindo uma função do IAM. Também é possível usar a autenticação de logon único da sua
empresa, ou até mesmo fazer login usando o Google ou o Facebook. Nesses casos, seu administrador
configurou anteriormente a federação de identidades usando funções do IAM. Ao acessar a AWS usando
credenciais de outra empresa, você estará assumindo uma função indiretamente.
Para fazer login diretamente no Console de gerenciamento da AWS, use sua senha com o e-mail do
usuário raiz ou seu nome de usuário do IAM. É possível acessar a AWS de maneira programática usando
seu usuário raiz ou as chaves de acesso do usuário do IAM. A AWS fornece ferramentas do SDK ou da
linha de comando para assinar sua solicitação de forma criptográfica usando suas credenciais. Se você
não utilizar ferramentas da AWS, cadastre a solicitação você mesmo. Faça isso usando o Signature versão
4, um protocolo para autenticação de solicitações de API de entrada. Para obter mais informações sobre a
autenticação de solicitações, consulte Processo de cadastramento do Signature versão 4 na AWS General
Reference.
Independentemente do método de autenticação usado, também pode ser exigido que você forneça
informações adicionais de segurança. Por exemplo, a AWS recomenda o uso da autenticação multifator
(MFA) para aumentar a segurança de sua conta. Para saber mais, consulte Usar o Multi-Factor
Authentication (MFA) na AWS no Guia do usuário do IAM.
72
Amazon Transcribe Guia do desenvolvedor
Autenticação com identidades
Um grupo do IAM é uma identidade que especifica uma coleção de usuários do IAM. Não é possível
fazer login como um grupo. É possível usar grupos para especificar permissões para vários usuários de
uma vez. Os grupos facilitam o gerenciamento de permissões para grandes conjuntos de usuários. Por
exemplo, você pode ter um grupo chamado Administradores do IAM e atribuir a esse grupo permissões
para administrar recursos do IAM.
Funções do IAM
Uma função do IAM é uma identidade dentro de sua conta da AWS que tem permissões específicas.
Ela é semelhante a um usuário do IAM, mas não está associada a uma pessoa específica. É possível
assumir temporariamente uma função do IAM no Console de gerenciamento da AWS alternando funções.
É possível assumir uma função chamando uma operação de API da AWS CLI ou da AWS, ou usando um
URL personalizado. Para obter mais informações sobre os métodos para o uso de funções, consulte Usar
funções do IAM no Guia do usuário do IAM.
As funções do IAM com credenciais temporária são úteis nas seguintes situações:
• Permissões temporárias para usuários do IAM – um usuário do IAM pode assumir uma função do IAM
para obter temporariamente permissões diferentes para uma tarefa específica.
• Acesso de usuário federado – Em vez de criar um usuário do IAM, você pode usar identidades
existentes do AWS Directory Service, do diretório de usuário da sua empresa ou de um provedor de
identidades da Web. Estes são conhecidos como usuários federados. A AWS atribui uma função a um
usuário federado quando o acesso é solicitado por meio de um provedor de identidades. Para obter mais
informações sobre usuários federados, consulte Usuários federados e funções no Guia do usuário do
IAM.
• Acesso entre contas – é possível usar uma função do IAM para permitir que alguém (um principal
confiável) em outra conta acesse recursos em sua conta. As funções são a principal forma de conceder
acesso entre contas. No entanto, alguns serviços da AWS permitem que você anexe uma política
diretamente a um recurso (em vez de usar uma função como proxy). Para saber a diferença entre
funções e políticas baseadas em recurso para acesso entre contas, consulte Como as funções do IAM
diferem das políticas baseadas em recurso no Guia do usuário do IAM.
73
Amazon Transcribe Guia do desenvolvedor
Gerenciamento do acesso usando políticas
• Acesso a serviços da AWS – Uma função de serviço é uma função do IAM que um serviço assume
para realizar ações em seu nome na sua conta. Ao configurar alguns ambientes de serviço da AWS,
você deve definir uma função a ser assumida pelo serviço. Essa função de serviço deve incluir todas
as permissões necessárias para o serviço acessar os recursos da AWS de que precisa. As funções de
serviço variam de acordo com o serviço, mas muitas permitem que você escolha as permissões, desde
que atenda aos requisitos documentados para esse serviço. As funções de serviço fornecem acesso
apenas dentro de sua conta e não podem ser usadas para conceder acesso a serviços em outras
contas. Você pode criar, modificar e excluir uma função de serviço no IAM. Por exemplo, você pode
criar uma função que permita que Amazon Redshift acesse um bucket do Amazon S3 em seu nome e
carregue dados desse bucket em um cluster Amazon Redshift. Para obter mais informações, consulte
Criar uma função para delegar permissões a um serviço da AWS no Guia do usuário do IAM.
• Aplicativos em execução no Amazon EC2 –Você pode usar uma função do IAM para gerenciar
credenciais temporárias para aplicativos que estão sendo executados em uma instância do EC2 e que
fazem solicitações de API da AWS CLI ou AWS. É preferível fazer isso do que armazenar chaves de
acesso na instância do EC2. Para atribuir uma função da AWS a uma instância do EC2 e disponibilizá-
la para todos os seus aplicativos, crie um perfil de instância que esteja anexado à instância. Um perfil
de instância contém a função e permite que programas que estão em execução na instância do EC2
obtenham credenciais temporárias. Para mais informações, consulte Uso de uma função do IAM para
conceder permissões aos aplicativos em execução nas instâncias do Amazon EC2 no Guia do usuário
do IAM.
Para saber se você deve usar funções do IAM, consulte Quando criar uma função do IAM (em vez de um
usuário) no Guia do usuário do IAM.
Um administrador do IAM pode usar políticas para especificar quem tem acesso aos recursos da AWS e
quais ações essas pessoas podem executar nesses recursos. Cada entidade do IAM (usuário ou função)
começa sem permissões. Em outras palavras, por padrão, os usuários não podem fazer nada, nem mesmo
alterar sua própria senha. Para dar permissão a um usuário para fazer algo, um administrador deve anexar
uma política de permissões ao usuário. Ou o administrador pode adicionar o usuário a um grupo que tenha
as permissões pretendidas. Quando um administrador concede permissões a um grupo, todos os usuários
desse grupo recebem essas permissões.
As políticas do IAM definem permissões para uma ação, independentemente do método usado
para executar a operação. Por exemplo, suponha que você tenha uma política que permite a ação
iam:GetRole. Um usuário com essa política pode obter informações de funções do Console de
gerenciamento da AWS, da AWS CLI ou da API da AWS.
As políticas baseadas em identidade podem ser categorizadas ainda mais como políticas em linha ou
políticas gerenciadas. As políticas em linha são anexadas diretamente a um único usuário, grupo ou
74
Amazon Transcribe Guia do desenvolvedor
Gerenciamento do acesso usando políticas
função. As políticas gerenciadas são políticas independentes que podem ser anexadas a vários usuários,
grupos e funções em sua conta da AWS. As políticas gerenciadas incluem políticas gerenciadas pela AWS
e políticas gerenciadas pelo cliente. Para saber como escolher entre uma política gerenciada ou uma
política em linha, consulte Escolher entre políticas gerenciadas e políticas em linha no Guia do usuário do
IAM.
75
Amazon Transcribe Guia do desenvolvedor
Como o Amazon Transcribe funciona com o IAM
vários tipos de política estão envolvidos, consulte Lógica de avaliação de políticas no Guia do usuário do
IAM.
Para obter mais informações sobre o Identity and Access Management para o Amazon Transcribe,
continue nas seguintes páginas:
Tópicos
• Políticas baseadas em identidade do Amazon Transcribe (p. 76)
• Funções do IAM do Amazon Transcribe (p. 77)
Ações
O elemento Action de uma política baseada em identidade do IAM descreve a ação ou ações específicas
que serão permitidas ou negadas pela política. As ações de política geralmente têm o mesmo nome que
a operação de API da AWS associada. A ação é usada em uma política para conceder permissões para
executar a operação associada.
As ações de políticas no Amazon Transcribe usam o seguinte prefixo antes da ação: transcribe:.
Por exemplo, para conceder a alguém permissão para executar uma instância do Amazon EC2
com a operação da API StartTranscriptionJob do Amazon Transcribe, inclua a ação
transcribe:StartTranscriptionJob na política da pessoa. As declarações de política devem incluir
um elemento Action ou NotAction. O Amazon Transcribe define ações que descrevem as tarefas que
podem ser executadas com esse serviço.
Para especificar várias ações em uma única declaração, separe-as com vírgulas, da seguinte forma.
"Action": [
"transcribe:action1",
"transcribe:action2"
Você também pode especificar várias ações usando caracteres curinga (*). Por exemplo, para especificar
todas as ações que começam com a palavra List, inclua a seguinte ação.
"Action": "transcribe:List*"
76
Amazon Transcribe Guia do desenvolvedor
Exemplos de políticas baseadas em identidade
Para obter uma lista de ações do Amazon Transcribe, consulte Actions Defined by Amazon Transcribe no
Guia do usuário do IAM.
Recursos
O Amazon Transcribe não oferece suporte a especificação de ARNs de recursos em uma política.
Chaves de condição
O Amazon Transcribe não fornece nenhuma chave de condição específica ao serviço, mas oferece suporte
ao uso de algumas chaves de condição globais. Para todas as chaves de condição globais da AWS,
consulte Chaves de contexto de condição globais da AWS no Guia do usuário do IAM.
Exemplos
Para obter exemplos de políticas baseadas em identidade do Amazon Transcribe, consulte Exemplos de
políticas baseadas em identidade do Amazon Transcribe (p. 77).
Funções de serviço
Você pode permitir que um serviço assuma uma função de serviço em seu nome. A função permite que o
serviço acesse recursos em outros serviços para concluir uma ação em seu nome. As funções de serviço
aparecem em sua conta do IAM e são de propriedade da conta. Isso significa que um administrador do
IAM pode alterar as permissões para essa função. No entanto, isso pode impedir que o serviço funcione
como o esperado.
77
Amazon Transcribe Guia do desenvolvedor
Exemplos de políticas baseadas em identidade
a AWS CLI ou a API da AWS. Um administrador do IAM deve criar políticas do IAM que concedam
aos usuários e às funções permissão para executarem operações específicas da API nos recursos
especificados de que precisam. O administrador deve anexar essas políticas aos usuários ou grupos do
IAM que exigem essas permissões.
Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de
documentos de política JSON, consulte Criar políticas no guia JSON no Guia do usuário do IAM.
Tópicos
• Melhores práticas de políticas (p. 78)
• Usar o console do Amazon Transcribe (p. 78)
• Políticas gerenciadas (predefinidas) pela AWS para o Amazon Transcribe (p. 79)
• Permissões necessárias para funções de usuários do IAM (p. 79)
• Permissões necessárias para chaves de criptografia do Amazon S3 (p. 80)
• Permitir que os usuários visualizem suas próprias permissões (p. 80)
• Comece usando políticas gerenciadas pela AWS – para começar a usar o Amazon Transcribe
rapidamente, use as políticas gerenciadas pela AWS para conceder a seus funcionários as permissões
de que precisam. Essas políticas já estão disponíveis em sua conta e são mantidas e atualizadas pela
AWS. Para obter mais informações, consulte Conceitos básicos do uso de permissões com políticas
gerenciadas pela AWS no Guia do usuário do IAM.
• Conceder privilégio mínimo – ao criar políticas personalizadas, conceda apenas as permissões
necessárias para executar uma tarefa. Comece com um conjunto mínimo de permissões e conceda
permissões adicionais conforme necessário. Fazer isso é mais seguro do que começar com permissões
que são muito lenientes e tentar restringi-las posteriormente. Para obter mais informações, consulte
Conceder privilégio mínimo, no Guia do usuário do IAM.
• Habilitar o MFA para operações confidenciais – para segurança adicional, exija que os usuários do IAM
usem a autenticação multifator (MFA) para acessar recursos ou operações de API confidenciais. Para
obter mais informações, consulte Usar a autenticação multifator (MFA) na AWS no Guia do usuário do
IAM.
• Usar condições de política para segurança adicional – na medida do possível, defina as condições sob
as quais suas políticas baseadas em identidade permitem o acesso a um recurso. Por exemplo, você
pode gravar condições para especificar um intervalo de endereços IP permitidos do qual a solicitação
deve partir. Você também pode escrever condições para permitir somente solicitações em uma data
especificada ou período ou para exigir o uso de SSL ou MFA. Para obter mais informações, consulte
Elementos da política JSON do IAM: condição no Guia do usuário do IAM.
Para garantir que essas entidades possam usar o console do Amazon Transcribe, anexe a seguinte
política gerenciada pela AWS a elas.
78
Amazon Transcribe Guia do desenvolvedor
Exemplos de políticas baseadas em identidade
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"transcribe:*"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Não é necessário conceder permissões mínimas do console para usuários que fazem chamadas somente
da AWS CLI ou da API da AWS. Em vez disso, permita o acesso somente às ações que correspondem à
operação da API que você está tentando executar.
Para obter mais informações, consulte Adicionar permissões a um usuário no Guia do usuário do IAM:
As seguintes políticas gerenciadas pela AWS, que você pode associar a usuários, funções e grupos em
sua conta, são específicas do Amazon Transcribe:
• ReadOnly – concede acesso somente leitura a recursos do Amazon Transcribe para que você possa
obter e listar trabalhos de transcrição e vocabulários personalizados.
• FullAccess – concede acesso total para criar, ler, atualizar, excluir e executar todos os recursos do
Amazon Transcribe. Também permite o acesso a buckets do Amazon Simple Storage Service (Amazon
S3) com transcribe no nome do bucket.
Note
Você pode analisar as políticas de permissões gerenciadas fazendo login no console do IAM e
pesquisando pelo nome da política.
Além disso, também é possível criar políticas do IAM personalizadas para conceder permissões para
ações da API do Amazon Transcribe. Você pode anexar essas políticas personalizadas a usuários,
funções ou grupos do IAM que exijam essas permissões.
O usuário deve ter a seguinte política do IAM para descriptografar permissões no nome de recurso da
Amazon (ARN) do KMS.
79
Amazon Transcribe Guia do desenvolvedor
Exemplos de políticas baseadas em identidade
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"kms:Decrypt"
],
"Resource": "KMS key ARN",
"Effect": "Allow"
}
]
}
A política do IAM do usuário deve ter permissões do Amazon S3 para acessar o bucket do S3 em que os
arquivos de áudio são armazenados e as transcrições são salvas.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
“s3:GetObject”,
],
"Resource": "S3 bucket location"
}
]
}
{
"Sid": "Allow-Transcribe",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::account id:root",
},
"Action": [
"kms:Decrypt"
],
"Resource": "KMS key ARN"
}
Para obter mais informações sobre como permitir acesso às chaves mestras de clientes, consulte Permitir
que contas externas da AWS acessem uma CMK no Guia do desenvolvedor do AWS KMS.
{
"Version": "2012-10-17",
"Statement": [
80
Amazon Transcribe Guia do desenvolvedor
Solução de problemas
{
"Sid": "ViewOwnUserInfo",
"Effect": "Allow",
"Action": [
"iam:GetUserPolicy",
"iam:ListGroupsForUser",
"iam:ListAttachedUserPolicies",
"iam:ListUserPolicies",
"iam:GetUser"
],
"Resource": [
"arn:aws:iam::*:user/${aws:username}"
]
},
{
"Sid": "NavigateInConsole",
"Effect": "Allow",
"Action": [
"iam:GetGroupPolicy",
"iam:GetPolicyVersion",
"iam:GetPolicy",
"iam:ListAttachedGroupPolicies",
"iam:ListGroupPolicies",
"iam:ListPolicyVersions",
"iam:ListPolicies",
"iam:ListUsers"
],
"Resource": "*"
}
]
}
Tópicos
• Não tenho autorização para executar uma ação no Amazon Transcribe (p. 81)
• Não tenho autorização para executar iam:PassRole (p. 82)
• Quero visualizar minhas chaves de acesso (p. 82)
• Sou administrador e desejo conceder acesso ao Amazon Transcribe para outros usuários. (p. 82)
• Quero permitir que as pessoas fora da minha conta da AWS acessem meus recursos do Amazon
Transcribe (p. 83)
Por exemplo, o seguinte erro ocorre quando um usuário do IAM chamado mateojackson IAM tenta
usar o console para visualizar detalhes sobre um trabalho de transcrição, mas não tem permissões para
transcribe:GetTranscriptionJob.
81
Amazon Transcribe Guia do desenvolvedor
Solução de problemas
Mateo deve solicitar que o administrador atualize suas políticas para permitir que ele acesse a operação
GetTranscriptionJob usando a ação transcribe:GetTrascriptionJob.
Alguns serviços da AWS permitem que você passe uma função existente para o serviço, em vez de
criar uma nova função de serviço ou função vinculada ao serviço. Para fazer isso, um usuário deve ter
permissões para passar a função para o serviço.
O erro de exemplo a seguir ocorre quando uma usuária do IAM chamada marymajor tenta usar o console
para executar uma ação no Amazon Transcribe. No entanto, a ação exige que o serviço tenha permissões
concedidas por uma função de serviço. Mary não tem permissões para passar a função para o serviço.
Neste caso, Mary pede ao administrador para atualizar suas políticas para permitir que ela execute a ação
iam:PassRole.
Não forneça as chaves de acesso a terceiros, mesmo que seja para ajudar a encontrar seu ID de
usuário canônico. Ao fazer isso, você pode dar a alguém acesso permanente à sua conta.
Ao criar um par de chaves de acesso, você é solicitado a guardar o ID da chave de acesso e a chave de
acesso secreta em um local seguro. A chave de acesso secreta só está disponível no momento em que é
criada. Se você perder sua chave de acesso secreta, você deverá adicionar novas chaves de acesso para
seu usuário do IAM. Você pode ter no máximo duas chaves de acesso. Se você já tiver duas, você deverá
excluir um par de chaves para poder criar um novo. Para visualizar as instruções, consulte Gerenciar
chaves de acesso no Guia do usuário do IAM.
82
Amazon Transcribe Guia do desenvolvedor
Monitoramento do Amazon Transcribe
dessa entidade para acessar a AWS. Você deve anexar uma política à entidade que concede a eles as
permissões corretas no Amazon Transcribe.
Para começar a usar imediatamente, consulte Criar os primeiros usuário e grupo delegados do IAM no
Guia do usuário do IAM.
• Para saber se o Amazon Transcribe oferece suporte a esses recursos, consulte Como o Amazon
Transcribe funciona com o IAM (p. 76).
• Para saber como conceder acesso aos seus recursos em todas as contas da AWS pertencentes a você,
consulte Conceder acesso a um usuário do IAM em outra conta da AWS pertencente a você no Guia do
usuário do IAM.
• Para saber como conceder acesso aos seus recursos para contas da AWS de terceiros, consulte
Conceder acesso a contas da AWS pertencentes a terceiros no Guia do usuário do IAM.
• Para saber como fornecer acesso por meio de federação de identidades, consulte Fornecer acesso a
usuários autenticados externamente (federação de identidades) no Guia do usuário do IAM.
• Para saber a diferença entre usar funções e políticas baseadas em recurso para acesso entre contas,
consulte Como as funções do IAM diferem de políticas baseadas em recursos no Guia do usuário do
IAM.
Tópicos
• Monitorar chamadas da API do Amazon Transcribe com o AWS CloudTrail (p. 83)
• Uso do Eventos do Amazon CloudWatch com o Amazon Transcribe (p. 86)
83
Amazon Transcribe Guia do desenvolvedor
Monitorar o Amazon Transcribe com o CloudTrail
CloudTrail, incluindo eventos do Amazon Transcribe, para um bucket do Amazon Simple Storage Service
(Amazon S3). Se você não criar uma trilha, ainda poderá visualizar os eventos mais recentes no console
do CloudTrail em Event history (Histórico de eventos). Usando as informações coletadas pelo CloudTrail,
é possível ver cada solicitação que foi feita ao Amazon Transcribe, o endereço IP do qual a solicitação foi
feita, quem fez a solicitação, quando ela foi feita e outros detalhes.
Para saber mais sobre CloudTrail, consulte o AWS CloudTrail User Guide.
Para obter um registro contínuo de eventos em sua conta da AWS, incluindo eventos do Amazon
Transcribe, crie uma trilha. Uma trilha é uma configuração que permite que o CloudTrail entregue eventos
como arquivos de log a um bucket do S3 especificado. Por padrão, quando você cria uma trilha no
console, ela é aplicada a todas as regiões da AWS. A trilha registra eventos de todas as regiões na
partição da AWS e entrega os arquivos de log para o bucket do S3 especificado. Além disso, é possível
configurar outros serviços da AWS para análise mais profunda e ação sobre os dados de eventos
coletados nos logs do CloudTrail. Para obter mais informações, consulte:
O CloudTrail registra todas as ações do Amazon Transcribe, que são documentadas no Referência
da API (p. 94). Por exemplo, as chamadas para as operações CreateVocabulary,
GetTranscriptionJob e StartTranscriptionJob geram entradas nos arquivos de log do
CloudTrail.
Cada evento ou entrada no log contém informações sobre quem gerou a solicitação. As informações
ajudam a determinar:
Também é possível agregar arquivos de log do Amazon Transcribe de várias regiões da AWS e várias
contas da AWS em um único bucket do S3. Para obter mais informações, consulte Recebimento de
arquivos de log do CloudTrail de várias regiões e Recebimento de arquivos de log do CloudTrail de várias
contas.
84
Amazon Transcribe Guia do desenvolvedor
Monitorar o Amazon Transcribe com o CloudTrail
hora da ação, os parâmetros da solicitação e assim por diante. Os arquivos de log do CloudTrail não são
um rastreamento de pilha ordenada das chamadas da API pública, portanto, eles não são exibidos em uma
ordem específica.
{
"Records": [
{
"eventVersion": "1.05",
"userIdentity": {
"type": "AssumedRole | FederatedUser | IAMUser | Root | SAMLUser |
WebIdentityUser",
"principalId": "principal ID",
"arn": "ARN",
"accountId": "account ID",
"accessKeyId": "access key",
"userName": "user name"
},
"eventTime": "timestamp",
"eventSource": "transcribe.amazonaws.com",
"eventName": "StartTranscriptionJob",
"awsRegion": "region",
"sourceIPAddress": "source IP address",
"userAgent": "user agent",
"requestParameters": {
"mediaFormat": "flac | mp3 | mp4 | wav",
"languageCode": "en-US | es-US",
"transcriptionJobName": "unique job name",
"media": {
"mediaFileUri": ""
}
},
"responseElements": {
"transcriptionJob": {
"transcriptionJobStatus": "IN_PROGRESS",
"mediaFormat": "flac | mp3 | mp4 | wav",
"creationTime": "timestamp",
"transcriptionJobName": "unique job name",
"languageCode": "en-US | es-US",
"media": {
"mediaFileUri": ""
}
}
},
"requestID": "request ID",
"eventID": "event ID",
"eventType": "AwsApiCall",
"recipientAccountId": "account id"
},
{
"eventVersion": "1.05",
"userIdentity": {
"type": "AssumedRole | FederatedUser | IAMUser | Root | SAMLUser |
WebIdentityUser",
"principalId": "principal ID",
"arn": "ARN",
"accountId": "account ID",
"accessKeyId": "access key",
"userName": "user name"
},
"eventTime": "timestamp",
"eventSource": "transcribe.amazonaws.com",
"eventName": "GetTranscriptionJob",
85
Amazon Transcribe Guia do desenvolvedor
Eventos do CloudWatch
"awsRegion": "region",
"sourceIPAddress": "source IP address",
"userAgent": "user agent",
"requestParameters": {
"transcriptionJobName": "unique job name"
},
"responseElements": {
"transcriptionJob": {
"settings": {
},
"transcriptionJobStatus": "COMPLETED | FAILED | IN_PROGRESS",
"mediaFormat": "flac | mp3 | mp4 | wav",
"creationTime": "timestamp",
"transcriptionJobName": "unique job name",
"languageCode": "en-US | es-US",
"media": {
"mediaFileUri": ""
},
"transcript": {
"transcriptFileUri": ""
}
}
},
"requestID": "request ID",
"eventID": "event ID",
"eventType": "AwsApiCall",
"recipientAccountId": "account id"
}
]
}
• Evento – um evento indica uma alteração no estado de um dos trabalhos de transcrição. Por exemplo,
quando o TranscriptionJobStatus de um trabalho muda de IN_PROGRESS para COMPLETED.
• Destino – um destino é um outro serviço da AWS que processa um evento. Por exemplo, o AWS
Lambda ou o Amazon Simple Notification Service (Amazon SNS). Um destino recebe eventos no
formato JSON.
• Regra – uma regra corresponde eventos de entrada que você deseja que o Eventos do CloudWatch
monitore e roteia-os para um destino ou destinos para processamento. Se uma regra rotear um evento
para vários destinos, os destinos processarão o evento em paralelo. Uma regra pode personalizar o
JSON enviado ao destino.
Para obter mais informações sobre como criar e gerenciar eventos do Eventos do CloudWatch, consulte O
que é o Eventos do Amazon CloudWatch no Guia do usuário do Amazon CloudWatch.
86
Amazon Transcribe Guia do desenvolvedor
Eventos do CloudWatch
Veja a seguir um exemplo de uma regra do Eventos do CloudWatch para o Amazon Transcribe. Ela é
acionada quando o status de um trabalho de transcrição muda para COMPLETED ou FAILED.
{
"source": [
"aws.transcribe"
],
"detail-type": [
"Transcribe Job State Change"
],
"detail": {
"TranscriptionJobStatus": [
"COMPLETED",
"FAILED"
]
}
}
{
"version": "0",
"id": "event ID",
"detail-type":"Transcribe Job State Change",
"source": "aws.transcribe",
"account": "account ID",
"time": "timestamp",
"region": "region",
"resources": [],
"detail": {
"TranscriptionJobName": "unique job name",
"TranscriptionJobStatus": "status"
}
}
87
Amazon Transcribe Guia do desenvolvedor
Validação de conformidade
Para obter uma lista de serviços da AWS no escopo de programas de conformidade específicos, consulte
Serviços da AWS em escopo por programa de conformidade. Para obter informações gerais, consulte
Programas de conformidade da AWS.
88
Amazon Transcribe Guia do desenvolvedor
Segurança da infraestrutura
conectadas com baixa latência, altas taxas de transferência e redes altamente redundantes. Com as zonas
de disponibilidade, você pode projetar e operar aplicativos e bancos de dados que executam o failover
automaticamente entre as zonas de disponibilidade sem interrupção. As zonas de disponibilidade são mais
altamente disponíveis, tolerantes a falhas e escaláveis que uma ou várias infraestruturas de data center
tradicionais.
Para obter mais informações sobre regiões e zonas de disponibilidade da AWS, consulte Infraestrutura
global da AWS.
Para acessar o Amazon Transcribe por meio da rede, use chamadas de APIs publicadas da AWS. Os
clientes devem oferecer suporte ao Transport Layer Security (TLS) 1.0 ou posterior. Recomendamos o
TLS 1.2 ou posterior. Os clientes também devem oferecer suporte a pacotes de criptografia com Perfect
Forward Secrecy (PFS — Sigilo de encaminhamento perfeito), como Ephemeral Diffie-Hellman (DHE) ou
Ephemeral Elliptic Curve Diffie-Hellman (ECDHE). A maioria dos sistemas modernos, como o Java 7 e
versões posteriores, oferece suporte a esses modos.
Além disso, as solicitações devem ser assinadas usando um ID da chave de acesso e uma chave de
acesso secreta associada a uma entidade principal do AWS Identity and Access Management (IAM).
Ou você pode usar o AWS Security Token Service (AWS STS) para gerar credenciais de segurança
temporárias para assinar solicitações.
89
Amazon Transcribe Guia do desenvolvedor
Regiões compatíveis
Diretrizes e limites
Regiões compatíveis
Para obter uma lista de regiões da AWS onde o Amazon Transcribe está disponível, consulte Regiões e
endpoints da AWS na Referência geral da Amazon Web Services.
Limitação
Para obter informações sobre a limitação do Amazon Transcribe e para solicitar um aumento de limite,
consulte Limites do Amazon Transcribe no Referência geral do Amazon Web Services.
Diretrizes
Para obter os melhores resultados:
• Use um formato sem perda, como FLAC ou WAV, com a codificação de PCM de 16 bits.
• Use uma taxa de amostragem de 8.000 Hz para áudio de baixa fidelidade e 16.000 Hz para áudio de alta
fidelidade.
O Amazon Transcribe pode armazenar seu conteúdo para melhorar continuamente a qualidade dos
modelos de análise. Consulte as Perguntas frequentes do Amazon Transcribe para saber mais. Para
solicitar a exclusão do conteúdo que pode ter sido armazenado pelo Amazon Transcribe, abra um caso
com o AWS Support.
Limites
O Amazon Transcribe tem as seguintes limitações:
Descrição Limite
90
Amazon Transcribe Guia do desenvolvedor
A tabela a seguir descreve as alterações importantes em cada versão do Amazon Transcribe. Para receber
notificações sobre atualizações dessa documentação, você pode se inscrever em um feed RSS.
91
Amazon Transcribe Guia do desenvolvedor
Novo recurso O AWS SDK para Ruby V3 agora March 25, 2019
é compatível com o Amazon
Transcribe
92
Amazon Transcribe Guia do desenvolvedor
Novo guia (p. 91) Esta é a primeira versão do Guia November 29, 2017
do desenvolvedor do Amazon
Transcribe.
93
Amazon Transcribe Guia do desenvolvedor
Actions
Referência da API
Esta seção contém a documentação de referência da API.
Tópicos
Actions
The following actions are supported by Amazon Transcribe Service:
94
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
CreateVocabulary
Service: Amazon Transcribe Service
Creates a new custom vocabulary that you can use to change the way Amazon Transcribe handles
transcription of an audio file.
Request Syntax
{
"LanguageCode": "string",
"Phrases": [ "string" ],
"VocabularyFileUri": "string",
"VocabularyName": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 147).
Type: String
Valid Values: en-US | es-US | en-AU | fr-CA | en-GB | de-DE | pt-BR | fr-FR |
it-IT | ko-KR | es-ES | en-IN | hi-IN | ar-SA | ru-RU | zh-CN | nl-NL | id-
ID | ta-IN | fa-IR | en-IE | en-AB | en-WL | pt-PT | te-IN | tr-TR | de-CH |
he-IL | ms-MY | ja-JP | ar-AE
Required: Yes
Phrases (p. 95)
Pattern: .+
Required: No
VocabularyFileUri (p. 95)
The S3 location of the text file that contains the definition of the custom vocabulary. The URI must be in
the same region as the API endpoint that you are calling. The general form is
https://s3.<aws-region>.amazonaws.com/<bucket-name>/<keyprefix>/<objectkey>
For example:
https://s3.us-east-1.amazonaws.com/examplebucket/vocab.txt
For more information about S3 object names, see Object Keys in the Amazon S3 Developer Guide.
Type: String
95
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Pattern: (s3://|http(s*)://).+
Required: No
VocabularyName (p. 95)
The name of the vocabulary. The name must be unique within an AWS account. The name is case-
sensitive.
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: Yes
Response Syntax
{
"FailureReason": "string",
"LanguageCode": "string",
"LastModifiedTime": number,
"VocabularyName": "string",
"VocabularyState": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
If the VocabularyState field is FAILED, this field contains information about why the job failed.
Type: String
LanguageCode (p. 96)
Type: String
Valid Values: en-US | es-US | en-AU | fr-CA | en-GB | de-DE | pt-BR | fr-FR |
it-IT | ko-KR | es-ES | en-IN | hi-IN | ar-SA | ru-RU | zh-CN | nl-NL | id-
ID | ta-IN | fa-IR | en-IE | en-AB | en-WL | pt-PT | te-IN | tr-TR | de-CH |
he-IL | ms-MY | ja-JP | ar-AE
LastModifiedTime (p. 96)
Type: Timestamp
VocabularyName (p. 96)
Type: String
96
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Pattern: ^[0-9a-zA-Z._-]+
VocabularyState (p. 96)
The processing state of the vocabulary. When the VocabularyState field contains READY the
vocabulary is ready to be used in a StartTranscriptionJob request.
Type: String
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
BadRequestException
Your request didn't pass one or more validation tests. For example, if the transcription you're trying to
delete doesn't exist or if it is in a non-terminal state (for example, it's "in progress"). See the exception
Message field for more information.
When you are using the CreateVocabulary operation, the JobName field is a duplicate of a
previously entered job name. Resend your request with a different name.
When you are using the UpdateVocabulary operation, there are two jobs running at the same time.
Resend the second request later.
There was an internal error. Check the error message and try your request again.
Either you have sent too many requests or your input file is too long. Wait before you resend your
request, or use a smaller file and resend the request.
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
97
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
98
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
DeleteTranscriptionJob
Service: Amazon Transcribe Service
Deletes a previously submitted transcription job along with any other generated results such as the
transcription, models, and so on.
Request Syntax
{
"TranscriptionJobName": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 147).
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: Yes
Response Elements
If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
BadRequestException
Your request didn't pass one or more validation tests. For example, if the transcription you're trying to
delete doesn't exist or if it is in a non-terminal state (for example, it's "in progress"). See the exception
Message field for more information.
There was an internal error. Check the error message and try your request again.
Either you have sent too many requests or your input file is too long. Wait before you resend your
request, or use a smaller file and resend the request.
99
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
100
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
DeleteVocabulary
Service: Amazon Transcribe Service
Request Syntax
{
"VocabularyName": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 147).
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: Yes
Response Elements
If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
BadRequestException
Your request didn't pass one or more validation tests. For example, if the transcription you're trying to
delete doesn't exist or if it is in a non-terminal state (for example, it's "in progress"). See the exception
Message field for more information.
There was an internal error. Check the error message and try your request again.
Either you have sent too many requests or your input file is too long. Wait before you resend your
request, or use a smaller file and resend the request.
We can't find the requested resource. Check the name and try your request again.
101
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
102
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
GetTranscriptionJob
Service: Amazon Transcribe Service
Returns information about a transcription job. To see the status of the job, check the
TranscriptionJobStatus field. If the status is COMPLETED, the job is finished and you can find the
results at the location specified in the TranscriptionFileUri field.
Request Syntax
{
"TranscriptionJobName": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 147).
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: Yes
Response Syntax
{
"TranscriptionJob": {
"CompletionTime": number,
"CreationTime": number,
"FailureReason": "string",
"LanguageCode": "string",
"Media": {
"MediaFileUri": "string"
},
"MediaFormat": "string",
"MediaSampleRateHertz": number,
"Settings": {
"ChannelIdentification": boolean,
"MaxAlternatives": number,
"MaxSpeakerLabels": number,
"ShowAlternatives": boolean,
"ShowSpeakerLabels": boolean,
"VocabularyName": "string"
},
"Transcript": {
"TranscriptFileUri": "string"
},
"TranscriptionJobName": "string",
"TranscriptionJobStatus": "string"
}
}
103
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
BadRequestException
Your request didn't pass one or more validation tests. For example, if the transcription you're trying to
delete doesn't exist or if it is in a non-terminal state (for example, it's "in progress"). See the exception
Message field for more information.
There was an internal error. Check the error message and try your request again.
Either you have sent too many requests or your input file is too long. Wait before you resend your
request, or use a smaller file and resend the request.
We can't find the requested resource. Check the name and try your request again.
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
104
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
GetVocabulary
Service: Amazon Transcribe Service
Request Syntax
{
"VocabularyName": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 147).
The name of the vocabulary to return information about. The name is case-sensitive.
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: Yes
Response Syntax
{
"DownloadUri": "string",
"FailureReason": "string",
"LanguageCode": "string",
"LastModifiedTime": number,
"VocabularyName": "string",
"VocabularyState": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The S3 location where the vocabulary is stored. Use this URI to get the contents of the vocabulary. The
URI is available for a limited time.
Type: String
Pattern: (s3://|http(s*)://).+
FailureReason (p. 105)
If the VocabularyState field is FAILED, this field contains information about why the job failed.
105
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Type: String
LanguageCode (p. 105)
Type: String
Valid Values: en-US | es-US | en-AU | fr-CA | en-GB | de-DE | pt-BR | fr-FR |
it-IT | ko-KR | es-ES | en-IN | hi-IN | ar-SA | ru-RU | zh-CN | nl-NL | id-
ID | ta-IN | fa-IR | en-IE | en-AB | en-WL | pt-PT | te-IN | tr-TR | de-CH |
he-IL | ms-MY | ja-JP | ar-AE
LastModifiedTime (p. 105)
The date and time that the vocabulary was last modified.
Type: Timestamp
VocabularyName (p. 105)
Type: String
Pattern: ^[0-9a-zA-Z._-]+
VocabularyState (p. 105)
Type: String
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
BadRequestException
Your request didn't pass one or more validation tests. For example, if the transcription you're trying to
delete doesn't exist or if it is in a non-terminal state (for example, it's "in progress"). See the exception
Message field for more information.
There was an internal error. Check the error message and try your request again.
Either you have sent too many requests or your input file is too long. Wait before you resend your
request, or use a smaller file and resend the request.
We can't find the requested resource. Check the name and try your request again.
106
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
107
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
ListTranscriptionJobs
Service: Amazon Transcribe Service
Request Syntax
{
"JobNameContains": "string",
"MaxResults": number,
"NextToken": "string",
"Status": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 147).
When specified, the jobs returned in the list are limited to jobs whose name contains the specified
string.
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: No
MaxResults (p. 108)
The maximum number of jobs to return in the response. If there are fewer results in the list, this
response contains only the actual results.
Type: Integer
Required: No
NextToken (p. 108)
If the result of the previous request to ListTranscriptionJobs was truncated, include the
NextToken to fetch the next set of jobs.
Type: String
Pattern: .+
Required: No
Status (p. 108)
When specified, returns only transcription jobs with the specified status. Jobs are ordered by creation
date, with the newest jobs returned first. If you don’t specify a status, Amazon Transcribe returns all
transcription jobs ordered by creation date.
108
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Type: String
Required: No
Response Syntax
{
"NextToken": "string",
"Status": "string",
"TranscriptionJobSummaries": [
{
"CompletionTime": number,
"CreationTime": number,
"FailureReason": "string",
"LanguageCode": "string",
"OutputLocationType": "string",
"TranscriptionJobName": "string",
"TranscriptionJobStatus": "string"
}
]
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The ListTranscriptionJobs operation returns a page of jobs at a time. The maximum size
of the page is set by the MaxResults parameter. If there are more jobs in the list than the page
size, Amazon Transcribe returns the NextPage token. Include the token in the next request to the
ListTranscriptionJobs operation to return in the next page of jobs.
Type: String
Pattern: .+
Status (p. 109)
Type: String
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
109
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
BadRequestException
Your request didn't pass one or more validation tests. For example, if the transcription you're trying to
delete doesn't exist or if it is in a non-terminal state (for example, it's "in progress"). See the exception
Message field for more information.
There was an internal error. Check the error message and try your request again.
Either you have sent too many requests or your input file is too long. Wait before you resend your
request, or use a smaller file and resend the request.
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
110
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
ListVocabularies
Service: Amazon Transcribe Service
Returns a list of vocabularies that match the specified criteria. If no criteria are specified, returns the entire
list of vocabularies.
Request Syntax
{
"MaxResults": number,
"NameContains": "string",
"NextToken": "string",
"StateEquals": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 147).
The maximum number of vocabularies to return in the response. If there are fewer results in the list,
this response contains only the actual results.
Type: Integer
Required: No
NameContains (p. 111)
When specified, the vocabularies returned in the list are limited to vocabularies whose name
contains the specified string. The search is case-insensitive, ListVocabularies will return both
"vocabularyname" and "VocabularyName" in the response list.
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: No
NextToken (p. 111)
If the result of the previous request to ListVocabularies was truncated, include the NextToken to
fetch the next set of jobs.
Type: String
Pattern: .+
Required: No
111
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
When specified, only returns vocabularies with the VocabularyState field equal to the specified
state.
Type: String
Required: No
Response Syntax
{
"NextToken": "string",
"Status": "string",
"Vocabularies": [
{
"LanguageCode": "string",
"LastModifiedTime": number,
"VocabularyName": "string",
"VocabularyState": "string"
}
]
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The ListVocabularies operation returns a page of vocabularies at a time. The maximum size
of the page is set by the MaxResults parameter. If there are more jobs in the list than the page
size, Amazon Transcribe returns the NextPage token. Include the token in the next request to the
ListVocabularies operation to return in the next page of jobs.
Type: String
Pattern: .+
Status (p. 112)
Type: String
A list of objects that describe the vocabularies that match the search criteria in the request.
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
112
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
BadRequestException
Your request didn't pass one or more validation tests. For example, if the transcription you're trying to
delete doesn't exist or if it is in a non-terminal state (for example, it's "in progress"). See the exception
Message field for more information.
There was an internal error. Check the error message and try your request again.
Either you have sent too many requests or your input file is too long. Wait before you resend your
request, or use a smaller file and resend the request.
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
113
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
StartTranscriptionJob
Service: Amazon Transcribe Service
Request Syntax
{
"LanguageCode": "string",
"Media": {
"MediaFileUri": "string"
},
"MediaFormat": "string",
"MediaSampleRateHertz": number,
"OutputBucketName": "string",
"OutputEncryptionKMSKeyId": "string",
"Settings": {
"ChannelIdentification": boolean,
"MaxAlternatives": number,
"MaxSpeakerLabels": number,
"ShowAlternatives": boolean,
"ShowSpeakerLabels": boolean,
"VocabularyName": "string"
},
"TranscriptionJobName": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 147).
The language code for the language used in the input media file.
Type: String
Valid Values: en-US | es-US | en-AU | fr-CA | en-GB | de-DE | pt-BR | fr-FR |
it-IT | ko-KR | es-ES | en-IN | hi-IN | ar-SA | ru-RU | zh-CN | nl-NL | id-
ID | ta-IN | fa-IR | en-IE | en-AB | en-WL | pt-PT | te-IN | tr-TR | de-CH |
he-IL | ms-MY | ja-JP | ar-AE
Required: Yes
Media (p. 114)
Required: Yes
MediaFormat (p. 114)
Type: String
Required: No
114
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
The sample rate, in Hertz, of the audio track in the input media file.
If you do not specify the media sample rate, Amazon Transcribe determines the sample rate. If you
specify the sample rate, it must match the sample rate detected by Amazon Transcribe. In most cases,
you should leave the MediaSampleRateHertz field blank and let Amazon Transcribe determine the
sample rate.
Type: Integer
Required: No
OutputBucketName (p. 114)
If you set the OutputBucketName, Amazon Transcribe puts the transcription in the specified S3
bucket. When you call the GetTranscriptionJob (p. 103) operation, the operation returns this location in
the TranscriptFileUri field. The S3 bucket must have permissions that allow Amazon Transcribe
to put files in the bucket. For more information, see Permissions Required for IAM User Roles.
You can specify an AWS Key Management Service (KMS) key to encrypt the output of your
transcription using the OutputEncryptionKMSKeyId parameter. If you don't specify a KMS key,
Amazon Transcribe uses the default Amazon S3 key for server-side encryption of transcripts that are
placed in your S3 bucket.
If you don't set the OutputBucketName, Amazon Transcribe generates a pre-signed URL,
a shareable URL that provides secure access to your transcription, and returns it in the
TranscriptFileUri field. Use this URL to download the transcription.
Type: String
Pattern: [a-z0-9][\.\-a-z0-9]{1,61}[a-z0-9]
Required: No
OutputEncryptionKMSKeyId (p. 114)
The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) key used to encrypt
the output of the transcription job. The user calling the StartTranscriptionJob operation must
have permission to use the specified KMS key.
You can use either of the following to identify a KMS key in the current account:
• KMS Key ID: "1234abcd-12ab-34cd-56ef-1234567890ab"
• KMS Key Alias: "alias/ExampleAlias"
You can use either of the following to identify a KMS key in the current account or another account:
• Amazon Resource Name (ARN) of a KMS Key: "arn:aws:kms:region:account
ID:key/1234abcd-12ab-34cd-56ef-1234567890ab"
• ARN of a KMS Key Alias: "arn:aws:kms:region:account ID:alias/ExampleAlias"
If you don't specify an encryption key, the output of the transcription job is encrypted with the default
Amazon S3 key (SSE-S3).
If you specify a KMS key to encrypt your output, you must also specify an output location in the
OutputBucketName parameter.
115
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Type: String
Pattern: ^[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,2048}$
Required: No
Settings (p. 114)
Required: No
TranscriptionJobName (p. 114)
The name of the job. Note that you can't use the strings "." or ".." by themselves as the job name. The
name must also be unique within an AWS account.
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: Yes
Response Syntax
{
"TranscriptionJob": {
"CompletionTime": number,
"CreationTime": number,
"FailureReason": "string",
"LanguageCode": "string",
"Media": {
"MediaFileUri": "string"
},
"MediaFormat": "string",
"MediaSampleRateHertz": number,
"Settings": {
"ChannelIdentification": boolean,
"MaxAlternatives": number,
"MaxSpeakerLabels": number,
"ShowAlternatives": boolean,
"ShowSpeakerLabels": boolean,
"VocabularyName": "string"
},
"Transcript": {
"TranscriptFileUri": "string"
},
"TranscriptionJobName": "string",
"TranscriptionJobStatus": "string"
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
116
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
BadRequestException
Your request didn't pass one or more validation tests. For example, if the transcription you're trying to
delete doesn't exist or if it is in a non-terminal state (for example, it's "in progress"). See the exception
Message field for more information.
When you are using the CreateVocabulary operation, the JobName field is a duplicate of a
previously entered job name. Resend your request with a different name.
When you are using the UpdateVocabulary operation, there are two jobs running at the same time.
Resend the second request later.
There was an internal error. Check the error message and try your request again.
Either you have sent too many requests or your input file is too long. Wait before you resend your
request, or use a smaller file and resend the request.
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
117
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
UpdateVocabulary
Service: Amazon Transcribe Service
Updates an existing vocabulary with new values. The UpdateVocabulary operation overwrites all of the
existing information with the values that you provide in the request.
Request Syntax
{
"LanguageCode": "string",
"Phrases": [ "string" ],
"VocabularyFileUri": "string",
"VocabularyName": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 147).
Type: String
Valid Values: en-US | es-US | en-AU | fr-CA | en-GB | de-DE | pt-BR | fr-FR |
it-IT | ko-KR | es-ES | en-IN | hi-IN | ar-SA | ru-RU | zh-CN | nl-NL | id-
ID | ta-IN | fa-IR | en-IE | en-AB | en-WL | pt-PT | te-IN | tr-TR | de-CH |
he-IL | ms-MY | ja-JP | ar-AE
Required: Yes
Phrases (p. 118)
Pattern: .+
Required: No
VocabularyFileUri (p. 118)
The S3 location of the text file that contains the definition of the custom vocabulary. The URI must be in
the same region as the API endpoint that you are calling. The general form is
https://s3.<aws-region>.amazonaws.com/<bucket-name>/<keyprefix>/<objectkey>
For example:
https://s3.us-east-1.amazonaws.com/examplebucket/vocab.txt
For more information about S3 object names, see Object Keys in the Amazon S3 Developer Guide.
118
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Type: String
Pattern: (s3://|http(s*)://).+
Required: No
VocabularyName (p. 118)
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: Yes
Response Syntax
{
"LanguageCode": "string",
"LastModifiedTime": number,
"VocabularyName": "string",
"VocabularyState": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
Type: String
Valid Values: en-US | es-US | en-AU | fr-CA | en-GB | de-DE | pt-BR | fr-FR |
it-IT | ko-KR | es-ES | en-IN | hi-IN | ar-SA | ru-RU | zh-CN | nl-NL | id-
ID | ta-IN | fa-IR | en-IE | en-AB | en-WL | pt-PT | te-IN | tr-TR | de-CH |
he-IL | ms-MY | ja-JP | ar-AE
LastModifiedTime (p. 119)
Type: Timestamp
VocabularyName (p. 119)
Type: String
Pattern: ^[0-9a-zA-Z._-]+
119
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
The processing state of the vocabulary. When the VocabularyState field contains READY the
vocabulary is ready to be used in a StartTranscriptionJob request.
Type: String
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
BadRequestException
Your request didn't pass one or more validation tests. For example, if the transcription you're trying to
delete doesn't exist or if it is in a non-terminal state (for example, it's "in progress"). See the exception
Message field for more information.
When you are using the CreateVocabulary operation, the JobName field is a duplicate of a
previously entered job name. Resend your request with a different name.
When you are using the UpdateVocabulary operation, there are two jobs running at the same time.
Resend the second request later.
There was an internal error. Check the error message and try your request again.
Either you have sent too many requests or your input file is too long. Wait before you resend your
request, or use a smaller file and resend the request.
We can't find the requested resource. Check the name and try your request again.
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
120
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
121
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
StartStreamTranscription
Service: Amazon Transcribe Streaming Service
Starts a bidirectional HTTP2 stream where audio is streamed to Amazon Transcribe and the transcription
results are streamed to your application.
• x-amzn-transcribe-language-code
• x-amzn-transcribe-media-encoding
• x-amzn-transcribe-sample-rate
• x-amzn-transcribe-session-id
Request Syntax
{
"AudioStream": {
"AudioEvent": {
"AudioChunk": blob
}
}
}
The sample rate, in Hertz, of the input audio. We suggest that you use 8000 Hz for low quality audio
and 16000 Hz for high quality audio.
A identifier for the transcription session. Use this parameter when you want to retry a session. If you
don't provide a session ID, Amazon Transcribe will generate one for you and return it in the response.
Pattern: [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-
F0-9]{12}
122
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
The name of the vocabulary to use when processing the transcription job.
Pattern: ^[0-9a-zA-Z._-]+
Request Body
The request accepts the following data in JSON format.
PCM-encoded stream of audio blobs. The audio stream is encoded as an HTTP2 data frame.
Required: Yes
Response Syntax
HTTP/2 200
x-amzn-request-id: RequestId
x-amzn-transcribe-language-code: LanguageCode
x-amzn-transcribe-sample-rate: MediaSampleRateHertz
x-amzn-transcribe-media-encoding: MediaEncoding
x-amzn-transcribe-vocabulary-name: VocabularyName
x-amzn-transcribe-session-id: SessionId
Content-type: application/json
{
"TranscriptResultStream": {
"BadRequestException": {
},
"ConflictException": {
},
"InternalFailureException": {
},
"LimitExceededException": {
},
"TranscriptEvent": {
"Transcript": {
"Results": [
{
"Alternatives": [
{
"Items": [
{
"Content": "string",
"EndTime": number,
"StartTime": number,
"Type": "string"
}
],
"Transcript": "string"
}
],
"EndTime": number,
"IsPartial": boolean,
"ResultId": "string",
"StartTime": number
123
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
}
]
}
}
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The sample rate for the input audio stream. Use 8000 Hz for low quality audio and 16000 Hz for high
quality audio.
Pattern: [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-
F0-9]{12}
VocabularyName (p. 123)
Pattern: ^[0-9a-zA-Z._-]+
Represents the stream of transcription events from Amazon Transcribe to your application.
Errors
For information about the errors that are common to all actions, see Common Errors (p. 146).
124
Amazon Transcribe Guia do desenvolvedor
Data Types
BadRequestException
One or more arguments to the StartStreamTranscription operation was invalid. For example,
MediaEncoding was not set to pcm or LanguageCode was not set to a valid code. Check the
parameters and try your request again.
A new stream started with the same session ID. The current stream has been terminated.
A problem occurred while processing the audio. Amazon Transcribe terminated processing. Try your
request again.
You have exceeded the maximum number of concurrent transcription streams, are starting
transcription streams too quickly, or the maximum audio length of 4 hours. Wait until a stream has
finished processing, or break your audio stream into smaller chunks and try your request again.
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
Data Types
The following data types are supported by Amazon Transcribe Service:
The following data types are supported by Amazon Transcribe Streaming Service:
125
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
126
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Media
Service: Amazon Transcribe Service
Contents
MediaFileUri
The S3 location of the input media file. The URI must be in the same region as the API endpoint that
you are calling. The general form is:
https://s3.<aws-region>.amazonaws.com/<bucket-name>/<keyprefix>/<objectkey>
For example:
https://s3.us-east-1.amazonaws.com/examplebucket/example.mp4
https://s3.us-east-1.amazonaws.com/examplebucket/mediadocs/example.mp4
For more information about S3 object names, see Object Keys in the Amazon S3 Developer Guide.
Type: String
Pattern: (s3://|http(s*)://).+
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
127
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Settings
Service: Amazon Transcribe Service
Contents
ChannelIdentification
Instructs Amazon Transcribe to process each audio channel separately and then merge the
transcription output of each channel into a single transcription.
Amazon Transcribe also produces a transcription of each item detected on an audio channel,
including the start time and end time of the item and alternative transcriptions of the item including the
confidence that Amazon Transcribe has in the transcription.
You can't set both ShowSpeakerLabels and ChannelIdentification in the same request. If you
set both, your request returns a BadRequestException.
Type: Boolean
Required: No
MaxAlternatives
The number of alternative transcriptions that the service should return. If you specify the
MaxAlternatives field, you must set the ShowAlternatives field to true.
Type: Integer
Required: No
MaxSpeakerLabels
The maximum number of speakers to identify in the input audio. If there are more speakers in the
audio than this number, multiple speakers will be identified as a single speaker. If you specify the
MaxSpeakerLabels field, you must set the ShowSpeakerLabels field to true.
Type: Integer
Required: No
ShowAlternatives
Determines whether the transcription contains alternative transcriptions. If you set the
ShowAlternatives field to true, you must also set the maximum number of alternatives to return in
the MaxAlternatives field.
Type: Boolean
Required: No
ShowSpeakerLabels
Determines whether the transcription job uses speaker recognition to identify different speakers
in the input audio. Speaker recognition labels individual speakers in the audio file. If you set the
ShowSpeakerLabels field to true, you must also set the maximum number of speaker labels
MaxSpeakerLabels field.
128
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
You can't set both ShowSpeakerLabels and ChannelIdentification in the same request. If you
set both, your request returns a BadRequestException.
Type: Boolean
Required: No
VocabularyName
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
129
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Transcript
Service: Amazon Transcribe Service
Contents
TranscriptFileUri
Use this URI to access the transcription. If you specified an S3 bucket in the OutputBucketName
field when you created the job, this is the URI of that bucket. If you chose to store the transcription in
Amazon Transcribe, this is a shareable URL that provides secure access to that location.
Type: String
Pattern: (s3://|http(s*)://).+
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
130
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
TranscriptionJob
Service: Amazon Transcribe Service
Describes an asynchronous transcription job that was created with the StartTranscriptionJob
operation.
Contents
CompletionTime
Type: Timestamp
Required: No
CreationTime
Type: Timestamp
Required: No
FailureReason
If the TranscriptionJobStatus field is FAILED, this field contains information about why the job
failed.
Type: String
Required: No
LanguageCode
Type: String
Valid Values: en-US | es-US | en-AU | fr-CA | en-GB | de-DE | pt-BR | fr-FR |
it-IT | ko-KR | es-ES | en-IN | hi-IN | ar-SA | ru-RU | zh-CN | nl-NL | id-
131
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Required: No
Media
An object that describes the input media for the transcription job.
Required: No
MediaFormat
Type: String
Required: No
MediaSampleRateHertz
The sample rate, in Hertz, of the audio track in the input media file.
Type: Integer
Required: No
Settings
Optional settings for the transcription job. Use these settings to turn on speaker recognition, to set the
maximum number of speakers that should be identified and to specify a custom vocabulary to use
when processing the transcription job.
Required: No
Transcript
Required: No
TranscriptionJobName
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: No
TranscriptionJobStatus
132
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Type: String
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
133
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
TranscriptionJobSummary
Service: Amazon Transcribe Service
Contents
CompletionTime
Type: Timestamp
Required: No
CreationTime
Type: Timestamp
Required: No
FailureReason
Type: String
Required: No
LanguageCode
Type: String
Valid Values: en-US | es-US | en-AU | fr-CA | en-GB | de-DE | pt-BR | fr-FR |
it-IT | ko-KR | es-ES | en-IN | hi-IN | ar-SA | ru-RU | zh-CN | nl-NL | id-
ID | ta-IN | fa-IR | en-IE | en-AB | en-WL | pt-PT | te-IN | tr-TR | de-CH |
he-IL | ms-MY | ja-JP | ar-AE
Required: No
OutputLocationType
If the value is CUSTOMER_BUCKET then the location is the S3 bucket specified in the
outputBucketName field when the transcription job was started with the StartTranscriptionJob
operation.
If the value is SERVICE_BUCKET then the output is stored by Amazon Transcribe and can be retrieved
using the URI in the GetTranscriptionJob response's TranscriptFileUri field.
Type: String
Required: No
TranscriptionJobName
134
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: No
TranscriptionJobStatus
The status of the transcription job. When the status is COMPLETED, use the GetTranscriptionJob
operation to get the results of the transcription.
Type: String
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
135
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Service
VocabularyInfo
Service: Amazon Transcribe Service
Contents
LanguageCode
Type: String
Valid Values: en-US | es-US | en-AU | fr-CA | en-GB | de-DE | pt-BR | fr-FR |
it-IT | ko-KR | es-ES | en-IN | hi-IN | ar-SA | ru-RU | zh-CN | nl-NL | id-
ID | ta-IN | fa-IR | en-IE | en-AB | en-WL | pt-PT | te-IN | tr-TR | de-CH |
he-IL | ms-MY | ja-JP | ar-AE
Required: No
LastModifiedTime
The date and time that the vocabulary was last modified.
Type: Timestamp
Required: No
VocabularyName
Type: String
Pattern: ^[0-9a-zA-Z._-]+
Required: No
VocabularyState
The processing state of the vocabulary. If the state is READY you can use the vocabulary in a
StartTranscriptionJob request.
Type: String
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
136
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
137
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
Alternative
Service: Amazon Transcribe Streaming Service
Contents
Items
Required: No
Transcript
Type: String
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
138
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
AudioEvent
Service: Amazon Transcribe Streaming Service
Provides a wrapper for the audio chunks that you are sending.
Contents
AudioChunk
An audio blob that contains the next part of the audio that you want to transcribe.
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
139
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
AudioStream
Service: Amazon Transcribe Streaming Service
Contents
AudioEvent
A blob of audio from your application. You audio stream consists of one or more audio events.
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
140
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
Item
Service: Amazon Transcribe Streaming Service
Contents
Content
Type: String
Required: No
EndTime
The offset from the beginning of the audio stream to the end of the audio that resulted in the item.
Type: Double
Required: No
StartTime
The offset from the beginning of the audio stream to the beginning of the audio that resulted in the item.
Type: Double
Required: No
Type
The type of the item. PRONUNCIATION indicates that the item is a word that was recognized in the
input audio. PUNCTUATION indicates that the item was interpreted as a pause in the input audio.
Type: String
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
141
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
Result
Service: Amazon Transcribe Streaming Service
Contents
Alternatives
A list of possible transcriptions for the audio. Each alternative typically contains one item that contains
the result of the transcription.
Required: No
EndTime
The offset in seconds from the beginning of the audio stream to the end of the result.
Type: Double
Required: No
IsPartial
Amazon Transcribe divides the incoming audio stream into segments at natural points in the audio.
Transcription results are returned based on these segments.
The IsPartial field is true to indicate that Amazon Transcribe has additional transcription data to
send, false to indicate that this is the last transcription result for the segment.
Type: Boolean
Required: No
ResultId
Type: String
Required: No
StartTime
The offset in seconds from the beginning of the audio stream to the beginning of the result.
Type: Double
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
142
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
Transcript
Service: Amazon Transcribe Streaming Service
Contents
Results
Result (p. 142) objects that contain the results of transcribing a portion of the input audio stream. The
array can be empty.
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
143
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
TranscriptEvent
Service: Amazon Transcribe Streaming Service
Represents a set of transcription results from the server to the client. It contains one or more segments of
the transcription.
Contents
Transcript
The transcription of the audio stream. The transcription is composed of all of the items in the results
list.
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
144
Amazon Transcribe Guia do desenvolvedor
Amazon Transcribe Streaming Service
TranscriptResultStream
Service: Amazon Transcribe Streaming Service
Represents the transcription result stream from Amazon Transcribe to your application.
Contents
BadRequestException
A client error occurred when the stream was created. Check the parameters of the request and try your
request again.
Type: Exception
HTTP Status Code: 400
Required: No
ConflictException
A new stream started with the same session ID. The current stream has been terminated.
Type: Exception
HTTP Status Code: 409
Required: No
InternalFailureException
A problem occurred while processing the audio. Amazon Transcribe terminated processing.
Type: Exception
HTTP Status Code: 500
Required: No
LimitExceededException
Your client has exceeded one of the Amazon Transcribe limits, typically the limit on audio length. Break
your audio stream into smaller chunks and try your request again.
Type: Exception
HTTP Status Code: 429
Required: No
TranscriptEvent
A portion of the transcription of the audio stream. Events are sent periodically from Amazon Transcribe
to your application. The event can be a partial transcription of a section of the audio stream, or it can be
the entire transcription of that portion of the audio stream.
Required: No
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
145
Amazon Transcribe Guia do desenvolvedor
Common Errors
Common Errors
This section lists the errors common to the API actions of all AWS services. For errors specific to an API
action for this service, see the topic for that API action.
AccessDeniedException
The request processing has failed because of an unknown error, exception or failure.
The action or operation requested is invalid. Verify that the action is typed correctly.
The X.509 certificate or AWS access key ID provided does not exist in our records.
The AWS query string is malformed or does not adhere to AWS standards.
146
Amazon Transcribe Guia do desenvolvedor
Common Parameters
The request must contain either a valid (registered) AWS access key ID or X.509 certificate.
The request reached the service more than 15 minutes after the date stamp on the request or more
than 15 minutes after the request expiration date (such as for pre-signed URLs), or the date stamp on
the request is more than 15 minutes in the future.
Common Parameters
The following list contains the parameters that all actions use for signing Signature Version 4 requests with
a query string. Any action-specific parameters are listed in the topic for that action. For more information
about Signature Version 4, see Signature Version 4 Signing Process in the Amazon Web Services General
Reference.
Action
Type: string
Required: Yes
Version
The API version that the request is written for, expressed in the format YYYY-MM-DD.
147
Amazon Transcribe Guia do desenvolvedor
Common Parameters
Type: string
Required: Yes
X-Amz-Algorithm
The hash algorithm that you used to create the request signature.
Condition: Specify this parameter when you include authentication information in a query string instead
of in the HTTP authorization header.
Type: string
Required: Conditional
X-Amz-Credential
The credential scope value, which is a string that includes your access key, the date, the region you
are targeting, the service you are requesting, and a termination string ("aws4_request"). The value is
expressed in the following format: access_key/YYYYMMDD/region/service/aws4_request.
For more information, see Task 2: Create a String to Sign for Signature Version 4 in the Amazon Web
Services General Reference.
Condition: Specify this parameter when you include authentication information in a query string instead
of in the HTTP authorization header.
Type: string
Required: Conditional
X-Amz-Date
The date that is used to create the signature. The format must be ISO 8601 basic format
(YYYYMMDD'T'HHMMSS'Z'). For example, the following date time is a valid X-Amz-Date value:
20120325T120000Z.
Condition: X-Amz-Date is optional for all requests; it can be used to override the date used for signing
requests. If the Date header is specified in the ISO 8601 basic format, X-Amz-Date is not required.
When X-Amz-Date is used, it always overrides the value of the Date header. For more information, see
Handling Dates in Signature Version 4 in the Amazon Web Services General Reference.
Type: string
Required: Conditional
X-Amz-Security-Token
The temporary security token that was obtained through a call to AWS Security Token Service (AWS
STS). For a list of services that support temporary security credentials from AWS Security Token
Service, go to AWS Services That Work with IAM in the IAM User Guide.
Condition: If you're using temporary security credentials from the AWS Security Token Service, you
must include the security token.
Type: string
Required: Conditional
X-Amz-Signature
Specifies the hex-encoded signature that was calculated from the string to sign and the derived signing
key.
148
Amazon Transcribe Guia do desenvolvedor
Common Parameters
Condition: Specify this parameter when you include authentication information in a query string instead
of in the HTTP authorization header.
Type: string
Required: Conditional
X-Amz-SignedHeaders
Specifies all the HTTP headers that were included as part of the canonical request. For more
information about specifying signed headers, see Task 1: Create a Canonical Request For Signature
Version 4 in the Amazon Web Services General Reference.
Condition: Specify this parameter when you include authentication information in a query string instead
of in the HTTP authorization header.
Type: string
Required: Conditional
149
Amazon Transcribe Guia do desenvolvedor
AWS Glossary
For the latest AWS terminology, see the AWS Glossary in the AWS General Reference.
150