Ir para a navegação

Transcrição

Aprenda a 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 a 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 precisam estar em conformidade com a HIPAA devem entrar em contato com as vendas da ElevenLabs Sales para assinar um Business Associate Agreement (BAA). Conclua esta 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, lao, birmanês e cantonês
  • audio_event - Sons não falados, 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 prompt 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.

Prompt de termos-chave

O prompt de termos-chave está disponível no Scribe v2, Scribe v2 Medical (em 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 próprios ou outros termos específicos. Os termos-chave são mais poderosos do que palavras-chave direcionadas ou vocabulários personalizados oferecidos por outros modelos porque dependem do contexto para decidir se devem ou não transcrever o termo. O modo 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 prompt de termos-chave, consulte a documentação sobre prompt de termos-chave.

Modo não literal

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

Quando no_verbatim está ativado, o modelo remove palavras de preenchimento, falsos começos e hesitações 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 várias categorias de entidades na transcrição, fornecendo 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 sobre detecção de entidades.

Edição de transcrições

A edição de transcrições é 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 finalizada. O texto editado é retornado em edited_transcript junto à transcrição original, para que os timestamps e os rótulos de locutor permaneçam intactos. 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 sobre 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 essencial 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), marati (mar), nepalês (nep), odia (ori), persa (fas), sérvio (srp), esloveno (slv), suaíli (swa), tâmil (tam) e télugo (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), tajique (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), 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 aceitos 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 amplia constantemente o número de idiomas compatíveis com nossos modelos. Consulte esta página com frequência para conferir as novidades.

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

Sim, o recurso multicanal de STT 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 oferece suporte a até 5 canais. Saiba mais no cookbook 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 de acordo com 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 por cada segundo de áudio enviado, incluindo pausas e trechos silenciosos, e não há desconto para silêncio.

Informações principais

  • Entrada compatível: São aceitos arquivos de áudio e vídeo
  • 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 locutor atribuído pelo número do canal
  • Webhooks: Resultados de transcrição assíncrona podem ser entregues a um webhook — configure 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