Ir para a navegação

Transcrição

Saiba como transformar áudio falado em texto com a ElevenLabs.

Visão geral

A API de Speech to Text (STT) da ElevenLabs transforma áudio falado em texto com precisão de última geração. Nosso modelo Scribe v2 se adapta a pistas textuais em mais de 90 idiomas e diversos estilos de voz. Para experimentar uma demonstração ao vivo, visite nossa página de apresentação do Speech to Text.

Empresas que precisam estar em conformidade com a HIPAA devem entrar em contato com as vendas da ElevenLabs para assinar um Business Associate Agreement (BAA). Conclua essa etapa antes de prosseguir com integrações ou implantações relacionadas à HIPAA.

Modelos

Exemplo de resposta da API

O exemplo a seguir mostra a saída da API de Speech to Text usando o modelo Scribe v2 para um arquivo de áudio de exemplo.

{
"language_code": "en",
"language_probability": 1,
"text": "With a soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditative guides, or adding an intimate feel to your narrative projects.",
"words": [
{
"text": "With",
"start": 0.119,
"end": 0.259,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 0.239,
"end": 0.299,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "a",
"start": 0.279,
"end": 0.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 0.339,
"end": 0.499,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "soft",
"start": 0.479,
"end": 1.039,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.019,
"end": 1.2,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "and",
"start": 1.18,
"end": 1.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.339,
"end": 1.44,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "whispery",
"start": 1.419,
"end": 1.979,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 1.959,
"end": 2.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "American",
"start": 2.159,
"end": 2.719,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 2.699,
"end": 2.779,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "accent,",
"start": 2.759,
"end": 3.389,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.119,
"end": 4.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "I'm",
"start": 4.159,
"end": 4.459,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.44,
"end": 4.52,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "the",
"start": 4.5,
"end": 4.599,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 4.579,
"end": 4.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "ideal",
"start": 4.679,
"end": 5.099,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 5.079,
"end": 5.219,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "choice",
"start": 5.199,
"end": 5.719,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 5.699,
"end": 6.099,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "for",
"start": 6.099,
"end": 6.199,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 6.179,
"end": 6.279,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "creating",
"start": 6.259,
"end": 6.799,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 6.779,
"end": 6.979,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "ASMR",
"start": 6.959,
"end": 7.739,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 7.719,
"end": 7.859,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "content,",
"start": 7.839,
"end": 8.45,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 9,
"end": 9.06,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "meditative",
"start": 9.04,
"end": 9.64,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 9.619,
"end": 9.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "guides,",
"start": 9.679,
"end": 10.359,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 10.359,
"end": 10.409,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "or",
"start": 11.319,
"end": 11.439,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 11.42,
"end": 11.52,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "adding",
"start": 11.5,
"end": 11.879,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 11.859,
"end": 12,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "an",
"start": 11.979,
"end": 12.079,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 12.059,
"end": 12.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "intimate",
"start": 12.179,
"end": 12.579,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 12.559,
"end": 12.699,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "feel",
"start": 12.679,
"end": 13.159,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.139,
"end": 13.179,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "to",
"start": 13.159,
"end": 13.26,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.239,
"end": 13.3,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "your",
"start": 13.299,
"end": 13.399,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.379,
"end": 13.479,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "narrative",
"start": 13.479,
"end": 13.889,
"type": "word",
"speaker_id": "speaker_0"
},
{
"text": " ",
"start": 13.919,
"end": 13.939,
"type": "spacing",
"speaker_id": "speaker_0"
},
{
"text": "projects.",
"start": 13.919,
"end": 14.779,
"type": "word",
"speaker_id": "speaker_0"
}
]
}

A saída é classificada em três tipos de categoria:

  • word - Uma palavra no idioma do áudio
  • spacing - O espaço entre palavras, não aplicável a idiomas que não usam espaços, como japonês, mandarim, tailandês, laociano, birmanês e cantonês
  • audio_event - Sons que não são fala, como risadas ou aplausos

Concorrência e prioridade

Concorrência é o conceito de quantas solicitações podem ser processadas ao mesmo tempo.

Para Speech to Text, arquivos com mais de 8 minutos são transcritos internamente em paralelo para acelerar o processamento. O áudio é dividido em quatro segmentos para serem transcritos simultaneamente.

Você pode calcular o limite de concorrência com o seguinte cálculo:

Concurrency=min⁡(4,round_up(audio_duration_secs480))Concurrency = \min(4, \text{round\_up}(\frac{\text{audio\_duration\_secs}}{480}))

Por exemplo, um arquivo de áudio de 15 minutos será transcrito com concorrência de 2, enquanto um arquivo de áudio de 120 minutos será transcrito com concorrência de 4.

O cálculo acima se aplica apenas ao Scribe v2 e ao Scribe v2 Medical. Para o Scribe v2 Realtime, consulte o gráfico de limites de concorrência.

Recursos avançados

O direcionamento por termos-chave e a edição de transcrições têm custo adicional. Consulte a página de preços da API para informações detalhadas sobre preços.

Direcionamento por termos-chave

O direcionamento por termos-chave está disponível com o Scribe v2, o Scribe v2 Medical (em lote) e o Scribe v2 Realtime.

Destaque palavras ou frases para direcionar o modelo a transcrevê-las. Isso é útil para transcrever palavras ou frases específicas que não são comuns no áudio, como nomes de produtos, nomes próprios ou outros termos específicos. Os termos-chave são mais eficazes do que palavras-chave direcionadas ou vocabulários personalizados oferecidos por outros modelos, pois se baseiam no contexto para decidir se devem transcrever ou não determinado termo. O processamento em lote suporta até 1.000 termos-chave (50 caracteres cada), enquanto o modo em tempo real suporta até 50 termos-chave (20 caracteres cada).

Para saber mais sobre como usar o direcionamento por termos-chave, consulte a documentação de direcionamento por termos-chave.

Modo não literal

O modo não literal está disponível com o Scribe v2, o Scribe v2 Medical (em lote) e o Scribe v2 Realtime.

Quando no_verbatim está ativado, o modelo remove palavras de preenchimento, falsos começos e disfluências da transcrição. Isso gera uma saída mais limpa, adequada para legendas, resumos ou qualquer caso de uso em que a legibilidade seja mais importante do que registrar cada palavra falada.

Detecção de entidades

A detecção de entidades está disponível com todos os modelos em lote e o Scribe v2 Realtime.

Os modelos em lote e o Scribe v2 Realtime podem detectar várias categorias de entidades na transcrição e fornecer seus timestamps exatos. Isso é útil para destacar números de cartão de crédito, nomes, condições médicas ou números de seguridade social dos EUA.

Para ver uma lista completa das entidades compatíveis, consulte a documentação de detecção de entidades.

Edição de transcrição

A edição de transcrição é um recurso experimental disponível com todos os modelos em lote e o Scribe v2 Realtime. No momento, ela não está disponível em ambientes de residência de dados.

Envie uma instrução em linguagem natural com o parâmetro transcript_edit, e ela será aplicada à transcrição finalizada. O texto editado é retornado em edited_transcript junto da transcrição original, mantendo intactos os timestamps e os rótulos dos falantes. Isso é útil para padronizar a forma como datas, horários ou unidades são escritos, aplicar um estilo diferente ou reescrever a transcrição em uma única solicitação.

Para saber mais, consulte a documentação de edição de transcrição e o guia de edição de transcrição em tempo real.

Idiomas compatíveis

O Scribe v2 oferece suporte a mais de 90 idiomas, incluindo:

Africâner (afr), Amárico (amh), Árabe (ara), Armênio (hye), Assamese (asm), Asturiano (ast), Azerbaijano (aze), Bielorrusso (bel), Bengali (ben), Bósnio (bos), Búlgaro (bul), Birmanês (mya), Cantonês (yue), Catalão (cat), Cebuano (ceb), Chichewa (nya), Croata (hrv), Tcheco (ces), Dinamarquês (dan), Holandês (nld), Inglês (eng), Estoniano (est), Filipino (fil), Finlandês (fin), Francês (fra), Fula (ful), Galego (glg), Ganda (lug), Georgiano (kat), Alemão (deu), Grego (ell), Guzerate (guj), Hauçá (hau), Hebraico (heb), Hindi (hin), Húngaro (hun), Islandês (isl), Igbo (ibo), Indonésio (ind), Irlandês (gle), Italiano (ita), Japonês (jpn), Javanês (jav), Kabuverdianu (kea), Canarês (kan), Cazaque (kaz), Khmer (khm), Coreano (kor), Curdo (kur), Quirguiz (kir), Lao (lao), Letão (lav), Lingala (lin), Lituano (lit), Luo (luo), Luxemburguês (ltz), Macedônio (mkd), Malaio (msa), Malaiala (mal), Maltês (mlt), Chinês mandarim (zho), Maori (mri), Marata (mar), Mongol (mon), Nepali (nep), Sotho do Norte (nso), Norueguês (nor), Occitano (oci), Odia (ori), Pachto (pus), Persa (fas), Polonês (pol), Português (por), Punjabi (pan), Romeno (ron), Russo (rus), Sérvio (srp), Shona (sna), Sindi (snd), Cingalês (sin), Eslovaco (slk), Esloveno (slv), Somali (som), Espanhol (spa), Suaíli (swa), Sueco (swe), Tâmil (tam), Tadjique (tgk), Telugu (tel), Tailandês (tha), Turco (tur), Ucraniano (ukr), Umbundu (umb), Urdu (urd), Uzbeque (uzb), Vietnamita (vie), Galês (cym), Wolof (wol), Xhosa (xho) e Zulu (zul).

Detalhamento do suporte a idiomas

A Taxa de Erro de Palavras (WER) é uma métrica importante usada para avaliar a precisão de sistemas de transcrição. Ela mede quantos erros estão presentes em uma transcrição em comparação com uma transcrição de referência. Abaixo está um detalhamento da WER para cada idioma compatível com o Scribe v2.

Bielorrusso (bel), Bósnio (bos), Búlgaro (bul), Catalão (cat), Croata (hrv), Tcheco (ces), Dinamarquês (dan), Holandês (nld), Inglês (eng), Estoniano (est), Finlandês (fin), Francês (fra), Galego (glg), Alemão (deu), Grego (ell), Húngaro (hun), Islandês (isl), Indonésio (ind), Italiano (ita), Japonês (jpn), Canarês (kan), Letão (lav), Macedônio (mkd), Malaio (msa), Malaiala (mal), Norueguês (nor), Polonês (pol), Português (por), Romeno (ron), Russo (rus), Eslovaco (slk), Espanhol (spa), Sueco (swe), Turco (tur), Ucraniano (ukr) e Vietnamita (vie).

Armênio (hye), Azerbaijano (aze), Bengali (ben), Cantonês (yue), Filipino (fil), Georgiano (kat), Guzerate (guj), Hindi (hin), Cazaque (kaz), Lituano (lit), Maltês (mlt), Mandarim (cmn), Marata (mar), Nepali (nep), Odia (ori), Persa (fas), Sérvio (srp), Esloveno (slv), Suaíli (swa), Tâmil (tam) e Telugu (tel)

Africâner (afr), Árabe (ara), Assamês (asm), Asturiano (ast), Birmanês (mya), Hauçá (hau), Hebraico (heb), Javanês (jav), Coreano (kor), Quirguiz (kir), Luxemburguês (ltz), Maori (mri), Occitano (oci), Punjabi (pan), Tadjique (tgk), Tailandês (tha), Uzbeque (uzb) e Galês (cym).

Amárico (amh), Ganda (lug), Igbo (ibo), Irlandês (gle), Khmer (khm), Curdo (kur), Lao (lao), Mongol (mon), Sotho do Norte (nso), Pachto (pus), Xona (sna), Sindi (snd), Cingalês (sin), Somali (som), Urdu (urd), Uolofe (wol), Xhosa (xho), Iorubá (yor) e Zulu (zul).

Perguntas frequentes

Sim, a API permite enviar arquivos de áudio e vídeo para transcrição.

São compatíveis arquivos de até 3 GB. Os limites de duração dependem do modo de transcrição:

  • Modo padrão (use_multi_channel=false): até 10 horas
  • Modo multicanal (use_multi_channel=true): a duração combinada de todos os canais deve ser inferior a 10 horas

A API é compatível com os seguintes formatos de áudio e vídeo:

  • audio/aac
  • audio/x-aac
  • audio/x-aiff
  • audio/ogg
  • audio/mpeg
  • audio/mp3
  • audio/mpeg3
  • audio/x-mpeg-3
  • audio/opus
  • audio/wav
  • audio/x-wav
  • audio/webm
  • audio/flac
  • audio/x-flac
  • audio/mp4
  • audio/aiff
  • audio/x-m4a

Os formatos de vídeo compatíveis incluem:

  • video/mp4
  • video/x-msvideo
  • video/x-matroska
  • video/quicktime
  • video/x-ms-wmv
  • video/x-flv
  • video/webm
  • video/mpeg
  • video/3gpp

A ElevenLabs está sempre expandindo o número de idiomas compatíveis com nossos modelos. Consulte esta página com frequência para novidades.

Sim, os resultados de transcrição assíncrona podem ser enviados para webhooks configurados nas configurações de webhook da interface. Saiba mais no guia de webhooks.

Sim, o recurso de STT multicanal permite transcrever áudio em que cada canal é processado de forma independente e recebe um ID de falante com base no número do canal. Esse recurso é compatível com até 5 canais. Saiba mais no guia de transcrição multicanal.

A ElevenLabs cobra pelo Speech to Text com base na duração do áudio enviado para transcrição. A cobrança é calculada por hora de áudio, com tarifas que variam conforme o plano e o modelo. Consulte a página de preços da API para informações detalhadas sobre preços.

O silêncio conta para a duração cobrada. Tanto a transcrição em lote quanto a em tempo real são medidas a cada segundo de áudio enviado, incluindo pausas e trechos silenciosos, sem desconto para silêncio.

Informações principais

  • Entrada compatível: arquivos de áudio e vídeo são aceitos
  • Tamanho máximo do arquivo: 3 GB
  • Duração máxima: 10 horas (modo padrão), 1 hora (modo multicanal)
  • Modo multicanal: até 5 canais; cada um é processado de forma independente com um ID de falante atribuído pelo número do canal
  • Webhooks: resultados de transcrição assíncrona podem ser enviados a um webhook — configure-o nas configurações do espaço de trabalho
  • Formatos de áudio compatíveis: AAC, AIFF, OGG, MP3, OPUS, WAV, FLAC, M4A, WebM
  • Formatos de vídeo compatíveis: MP4, AVI, MKV, MOV, WMV, FLV, WebM, MPEG, 3GPP