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 ponta. Nosso modelo Scribe v2 se adapta a pistas textuais em mais de 90 idiomas e vários estilos de voz. Para experimentar uma demonstração ao vivo, acesse nossa página de apresentação do Speech to Text.

Empresas que exigem conformidade com a HIPAA devem entrar em contato com a equipe de 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 se aplica a idiomas que não usam espaços, como japonês, mandarim, tailandês, laosiano, 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 que define quantas solicitações podem ser processadas ao mesmo tempo.

No 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 limite de concorrência.

Recursos avançados

O prompting de 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.

Prompting de termos-chave

O prompting de termos-chave está disponível no Scribe v2, Scribe v2 Medical (lote) e 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 ou outros termos específicos. Os termos-chave são mais eficientes do que palavras-chave direcionadas ou vocabulários personalizados oferecidos por outros modelos, pois usam o contexto para decidir se devem ou não transcrever o termo. O processamento em lote aceita até 1.000 termos-chave (50 caracteres cada), enquanto o modo em tempo real aceita até 50 termos-chave (20 caracteres cada).

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

Modo sem transcrição literal

O modo sem transcrição literal está disponível no Scribe v2, Scribe v2 Medical (lote) e Scribe v2 Realtime.

Quando no_verbatim está ativado, o modelo remove palavras de preenchimento, recomeç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 em todos os modelos em lote e no Scribe v2 Realtime.

Os modelos em lote e o Scribe v2 Realtime podem detectar diversas 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 a lista completa de 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 em todos os modelos em lote e no Scribe v2 Realtime.

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

Para saber mais, consulte a documentação de edição de transcrições e o guia de edição de transcrições 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á o 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), neerlandê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), azeri (aze), bengali (ben), cantonês (yue), filipino (fil), georgiano (kat), guzerate (guj), híndi (hin), cazaque (kaz), lituano (lit), maltês (mlt), mandarim (cmn), marata (mar), nepalês (nep), odia (ori), persa (fas), sérvio (srp), esloveno (slv), suaíli (swa), tâmil (tam) e telugo (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), panjabi (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), laosiano (lao), mongol (mon), sotho do norte (nso), pashto (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 ampliando o número de idiomas compatíveis com nossos modelos. Consulte esta página com frequência para ver atualizações.

Sim, os resultados de transcrições assíncronas podem ser enviados a 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 locutor 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.

Informações principais

  • Entrada compatível: arquivos de áudio e vídeo são aceitos
  • Tamanho máximo de 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 locutor atribuído pelo número do canal
  • Webhooks: os resultados de transcrições assíncronas podem ser enviados a um webhook — configure-os 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