Skip to content

SipPulse AI - Transcrição de Áudio para Texto

Interface de Transcrição de Áudio

A plataforma SipPulse AI oferece recursos avançados para transcrição de áudio para texto. Esta seção documenta como utilizar a ferramenta de transcrição para converter arquivos de áudio em texto.

Acesso à Interface de Transcrição

  1. Navegação para a Ferramenta:

    • Acesse o menu lateral esquerdo
    • Clique em "Playground" para expandir as opções
    • Selecione "Speech to Text" para abrir a interface de transcrição
  2. Componentes Principais da Interface:

    • Área de Upload: Zona central para arrastar e soltar arquivos de áudio
    • Limitação de Tamanho: Máximo de 25MB por arquivo
    • Botões de Controle: "Transcribe" para iniciar o processamento
    • Área de Resultados: Espaço onde a transcrição será exibida após o processamento

Configuração da Transcrição

  1. Configurações de Modelo e Formato:

    • Modelo: Selecione "pulse-precision" para transcrição precisa
    • Formato de Saída: Opção para definir o formato do texto resultante
    • Idioma: Configurado como "Auto detect" para detecção automática, ou selecione um idioma específico
    • Prompt: Campo opcional para fornecer contexto adicional ao modelo de transcrição
  2. Recursos Avançados:

    • Anonimização: Quando ativada, substitui informações sensíveis por espaços reservados

      • Protege dados pessoais, evitando sua exposição no texto transcrito
      • Inclui custo adicional baseado na quantidade de caracteres processados
    • Insights: Análises adicionais do conteúdo transcrito

      • Sumarização de Texto: Transforma transcrições longas em resumos concisos
      • Detecção de Tópicos: Identifica os principais temas abordados no áudio
  3. Presets e Configurações Salvas:

    • Possibilidade de salvar configurações frequentemente utilizadas como presets
    • Botão "Save as preset" para armazenar as configurações atuais
    • Menu "No preset" para selecionar configurações previamente salvas

Processo de Transcrição

  1. Preparação do Arquivo:

    • Verifique se o arquivo de áudio está em um formato compatível
    • Certifique-se de que o tamanho do arquivo não excede 25MB
  2. Upload do Arquivo:

    • Arraste e solte o arquivo na área indicada, ou
    • Clique na área para abrir o seletor de arquivos
  3. Configuração dos Parâmetros:

    • Ajuste as configurações de modelo, idioma e outras opções conforme necessário
    • Ative recursos adicionais caso necessário (anonimização, análises)
  4. Execução da Transcrição:

    • Clique no botão "Transcribe" para iniciar o processamento
    • O sistema processará o áudio e exibirá o progresso
  5. Revisão e Exportação:

    • Após a conclusão, revise o texto transcrito na área de resultados
    • Utilize as opções disponíveis para exportar ou copiar o conteúdo

Integração com API

O SipPulse AI fornece uma API RESTful para integração de recursos de fala para texto diretamente em suas aplicações. Abaixo estão exemplos de como usar a API em diferentes linguagens de programação.

Parâmetros da API

  • model: Especifica o modelo de transcrição (ex: pulse-precision)
  • response_format: Determina a estrutura da resposta (ex: diarization para identificação de falantes)
  • api-key: Sua chave de autenticação da API SipPulse

Exemplo em Python

python
import requests

url = 'https://api.sippulse.ai/asr/transcribe' + '?model=pulse-precision&response_format=diarization'
method = 'POST'
headers = {
    'accept': 'application/json',
    'api-key': '$SIPPULSE_API_KEY',
}

with open('audio-sample.mp3', 'rb') as f:
    files = {
        'file': ('audio-sample.mp3', f, 'audio/mpeg'),
    }
    response = requests.request(method, url, headers=headers, files=files)

print(response.text)

Exemplo em Node.js

javascript
const url = new URL('https://api.sippulse.ai/asr/transcribe');
const params = new URLSearchParams({
  model: 'pulse-precision',
  response_format: 'diarization',
});
url.search = params;

const fetchOptions = {
  method: 'POST',
  headers: {
    'accept': 'application/json',
    'api-key': '$SIPPULSE_API_KEY',
  },
  body: new FormData(),
};

files.forEach(file => fetchOptions.body.append('file', file));

fetch(url, fetchOptions)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error("Error:", error));

Exemplo em cURL

bash
curl -X 'POST' \
  'https://api.sippulse.ai/asr/transcribe?model=pulse-precision&response_format=diarization' \
  -H 'accept: application/json' \
  -H 'api-key: $SIPPULSE_API_KEY' \
  -F 'file=audio-sample.mp3;type=audio/mpeg'

Exemplo de Resposta da API

Abaixo está um exemplo da resposta da API ao usar o formato diarization, com informações pessoais anonimizadas:

json
{
  "segments": [
    {
      "end_time": 9.98,
      "initial_time": 9.54,
      "speaker": "NOT IDENTF",
      "text": "Alô."
    },
    {
      "end_time": 11.84,
      "initial_time": 9.98,
      "speaker": "SPEAKER_00",
      "text": "Olá."
    },
    {
      "end_time": 12.48,
      "initial_time": 12.0,
      "speaker": "SPEAKER_01",
      "text": "Pode falar."
    },
    {
      "end_time": 31.38,
      "initial_time": 12.7,
      "speaker": "SPEAKER_00",
      "text": "Bom dia, meu nome é [NOME_AGENTE] e estou ligando em nome da [NOME_EMPRESA]. Posso falar com [NOME_CLIENTE]? Ótimo. Então, [NOME_CLIENTE], é um prazer falar com você hoje. Só para informar que esta ligação está sendo gravada por motivos de segurança. Desculpe, pode repetir?"
    },
    {
      "end_time": 36.68,
      "initial_time": 32.68,
      "speaker": "SPEAKER_01",
      "text": "Vocês estão gravando esta ligação, mas eu não tenho nenhuma conta com a [NOME_EMPRESA]."
    },
    {
      "end_time": 55.34,
      "initial_time": 37.54,
      "speaker": "SPEAKER_01",
      "text": "Minhas contas estão em dia. Eu falei com o gerente ontem. Ele me aconselhou a não compartilhar informações nessas ligações. Se há algum problema com minha conta, por favor me diga qual é."
    },
    {
      "end_time": 66.36,
      "initial_time": 56.3,
      "speaker": "SPEAKER_00",
      "text": "Entendo. Esta ligação é referente a um assunto comercial que temos com você, mas antes de fornecer informações adicionais, precisaria verificar alguns detalhes. Seria possível?"
    },
    {
      "end_time": 69.88,
      "initial_time": 67.52,
      "speaker": "SPEAKER_01",
      "text": "Não, não vou verificar nada, não sei do que se trata."
    },
    {
      "end_time": 82.18,
      "initial_time": 70.94,
      "speaker": "SPEAKER_00",
      "text": "Entendo. Se preferir, você pode entrar em contato conosco diretamente pelo [NÚMERO_TELEFONE] ou visitar sua agência local, ok?"
    },
    {
      "end_time": 93.6,
      "initial_time": 84.88,
      "speaker": "SPEAKER_01",
      "text": "Obrigado. Minha agência é bem próxima, vou passar lá e ver o que está acontecendo com minha conta."
    },
    {
      "end_time": 105.24,
      "initial_time": 94.24,
      "speaker": "SPEAKER_00",
      "text": "Entendo. Obrigado pelo seu tempo. Desejo um ótimo dia."
    },
    {
      "end_time": 106.6,
      "initial_time": 106.06,
      "speaker": "SPEAKER_01",
      "text": "Valeu."
    }
  ],
  "text": "00:09-00:09 | NÃO IDENTIFICADO:\nAlô.\n\n00:09-00:11 | FALANTE 00:\nOlá.\n\n00:12-00:12 | FALANTE 01:\nPode falar.\n\n00:12-00:31 | FALANTE 00:\nBom dia, meu nome é [NOME_AGENTE] e estou ligando em nome da [NOME_EMPRESA]. Posso falar com [NOME_CLIENTE]? Ótimo. Então, [NOME_CLIENTE], é um prazer falar com você hoje. Só para informar que esta ligação está sendo gravada por motivos de segurança. Desculpe, pode repetir?\n\n00:32-00:36 | FALANTE 01:\nVocês estão gravando esta ligação, mas eu não tenho nenhuma conta com a [NOME_EMPRESA].\n\n00:37-00:55 | FALANTE 01:\nMinhas contas estão em dia. Eu falei com o gerente ontem. Ele me aconselhou a não compartilhar informações nessas ligações. Se há algum problema com minha conta, por favor me diga qual é.\n\n00:56-01:06 | FALANTE 00:\nEntendo. Esta ligação é referente a um assunto comercial que temos com você, mas antes de fornecer informações adicionais, precisaria verificar alguns detalhes. Seria possível?\n\n01:07-01:09 | FALANTE 01:\nNão, não vou verificar nada, não sei do que se trata.\n\n01:10-01:22 | FALANTE 00:\nEntendo. Se preferir, você pode entrar em contato conosco diretamente pelo [NÚMERO_TELEFONE] ou visitar sua agência local, ok?\n\n01:24-01:33 | FALANTE 01:\nObrigado. Minha agência é bem próxima, vou passar lá e ver o que está acontecendo com minha conta.\n\n01:34-01:45 | FALANTE 00:\nEntendo. Obrigado pelo seu tempo. Desejo um ótimo dia.\n\n01:46-01:46 | FALANTE 01:\nValeu.",
  "usage": {
    "cost": 0.0705675264,
    "currency": "BRL",
    "cost_details": [
      {
        "type": "speech-to-text",
        "unit": "minute",
        "amount": {
          "value": 2
        },
        "total_price": {
          "value": 0.0705675264
        },
        "unit_price": {
          "value": 0.0352837632
        }
      }
    ],
    "performance": {
      "delay": 98,
      "execution_time": 20343,
      "relative_execution_time": 5.316030084058399,
      "relative_execution_time_unit": "seconds_per_seconds"
    }
  }
}

Estrutura da Resposta Explicada

A resposta da API fornece informações detalhadas sobre o áudio transcrito:

  1. Segments: Array de segmentos individuais de fala com:

    • initial_time/end_time: Marcações de tempo em segundos
    • speaker: Identificação do falante (SPEAKER_00, SPEAKER_01, etc.)
    • text: Conteúdo transcrito para aquele segmento
  2. Text: Transcrição formatada com marcações de tempo e identificação de falantes

  3. Usage: Métricas detalhadas de uso incluindo:

    • Cost: Custo total da transcrição
    • Cost details: Detalhamento das cobranças por tipo de serviço
    • Performance: Métricas de tempo de processamento

Considerações de Uso

  1. Qualidade da Transcrição:

    • A precisão da transcrição depende da qualidade do áudio original
    • Áudios com ruído de fundo, sobreposição de vozes ou má qualidade de gravação podem afetar os resultados
  2. Otimização de Custos:

    • Recursos adicionais como anonimização e análises aumentam o custo do processamento
    • Utilize apenas os recursos necessários para cada caso de uso específico
  3. Idiomas Suportados:

    • O sistema suporta múltiplos idiomas com a opção de detecção automática
    • Para melhores resultados em idiomas específicos, selecione manualmente o idioma correto
  4. Limites de Taxa da API:

    • Esteja ciente dos limites de taxa da API para seu nível de assinatura
    • Implemente tratamento adequado de erros para respostas da API

Ao utilizar a ferramenta de transcrição do SipPulse AI, é possível converter eficientemente conteúdo de áudio em texto, facilitando análises, documentação e processamento posterior do conteúdo, seja através da interface web ou programaticamente via API.