Skip to main content

TalkLabs STT SDK - Speech-to-Text API compatible with Deepgram

Project description

TalkLabs STT SDK

SDK Python para TalkLabs Speech-to-Text API - Compatível com

License: MIT Python 3.9+

Features

  • REST API - Transcrição completa de arquivos
  • WebSocket Streaming - Transcrição em tempo real
  • Deepgram Compatible - API compatível com Deepgram
  • Modelo Otimizado - Usa automaticamente o modelo 'turbo'
  • Async Support - WebSocket assíncrono
  • Type Hints - Totalmente tipado

Instalação

pip install talklabs-stt

Quick Start

REST API (Síncrono)

from talklabs_stt import STTClient

client = STTClient(api_key="tlk_live_xxxxx")

result = client.transcribe_file("audio.wav")
print(result["results"]["channels"][0]["alternatives"][0]["transcript"])

WebSocket Streaming (Assíncrono)

import asyncio
from talklabs_stt import STTClient

async def main():
    client = STTClient(api_key="tlk_live_xxxxx")

    def on_transcript(data):
        transcript = data["channel"]["alternatives"][0]["transcript"]
        if data["is_final"]:
            print(transcript)

    await client.transcribe_stream(
        "audio.wav",
        on_transcript=on_transcript
    )

asyncio.run(main())

Uso Completo

Inicialização

from talklabs_stt import STTClient, TranscriptionOptions

# Cliente (sempre usa api.talklabs.com.br)
client = STTClient(api_key="tlk_live_xxxxx")

# Cliente com timeout customizado
client = STTClient(
    api_key="tlk_live_xxxxx",
    timeout=600  # 10 minutos
)

Opções de Transcrição

from talklabs_stt import TranscriptionOptions

options = TranscriptionOptions(
    language="pt",           # pt, en, es, etc.
    detect_language=False,   # Detecção automática
    vad_filter=False,        # Filtro VAD
    interim_results=True     # Resultados intermediários (WebSocket)
)
# Nota: Modelo 'turbo', pontuação e formatação inteligente são sempre aplicados

result = client.transcribe_file("audio.wav", options=options)

Com kwargs diretos

result = client.transcribe_file("audio.wav", language="pt")

API Reference

STTClient

transcribe_file(audio_path, options=None, **kwargs)

Transcreve arquivo completo via REST API.

Args:

  • audio_path (str): Caminho do arquivo de áudio
  • options (TranscriptionOptions, optional): Opções de transcrição
  • **kwargs: Parâmetros adicionais

Returns: dict - Resultado -compatible

transcribe_stream(audio_path, options=None, on_transcript=None, on_metadata=None, **kwargs)

Transcreve via WebSocket streaming (async).

Args:

  • audio_path (str): Caminho do arquivo
  • options (TranscriptionOptions, optional): Opções
  • on_transcript (callable, optional): Callback para transcrições
  • on_metadata (callable, optional): Callback para metadata
  • **kwargs: Parâmetros adicionais

list_models()

Lista modelos disponíveis no servidor (informativo/debugging).

Nota: O SDK sempre usa o modelo 'turbo', independente dos modelos disponíveis.

Returns: dict - Lista de modelos disponíveis no servidor

Migração do Deepgram

O SDK é 100% compatível com Deepgram. Para migrar:

# Deepgram
from deepgram import DeepgramClient
dg = DeepgramClient(api_key)

# TalkLabs
from talklabs_stt import STTClient
client = STTClient(api_key)

# Mesma interface!
result = client.transcribe_file("audio.wav", language="pt")

Exemplos

Ver pasta examples/:

  • transcribe_simple.py - REST API básico
  • transcribe_stream.py - WebSocket streaming
  • list_models.py - Listar modelos
  • quick_start.py - Exemplo rápido de uso

Desenvolvimento

Benchmark de Modelos

⚠️ NOTA: O SDK usa exclusivamente o modelo 'turbo'. O script de benchmark é para teste do servidor, não do SDK.

O projeto inclui um script de benchmark para testar o servidor:

# Instalar dependências de desenvolvimento
pip install -e ".[dev]"

# Executar benchmark
python benchmark_models.py <arquivo_audio>

# Testar modelos específicos (no servidor)
python benchmark_models.py audio.wav --models tiny base medium turbo

# Salvar relatório customizado
python benchmark_models.py audio.wav --output meu_relatorio.json

O benchmark testa o servidor:

  • ✅ Velocidade de processamento (REST API e WebSocket)
  • ✅ RTF (Real-Time Factor) de cada modelo no servidor
  • ✅ Verifica se o servidor está trocando os modelos corretamente
  • ✅ Gera relatórios visuais e JSON completo

Ver documentação completa em BENCHMARK.md.

Usando Makefile

O projeto inclui um Makefile para facilitar tarefas comuns:

# Verificação de código
make lint              # Verificar com flake8

# Build e publicação
make publish-test      # Publicar no TestPyPI
make publish           # Publicar no PyPI oficial

# Utilitários
make clean             # Limpar arquivos temporários
make help              # Ver todos os comandos

Para mais detalhes sobre desenvolvimento, ver CONTRIBUTING.md.

Troubleshooting

Erro de autenticação

Verifique se a API key está correta e ativa.

Timeout

Aumente o timeout:

client = STTClient(api_key="...", timeout=600)

Formato de áudio

Formatos suportados: WAV, MP3, FLAC, OGG, M4A

License

MIT License - Ver LICENSE

Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

talklabs_stt-2.0.1.tar.gz (30.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

talklabs_stt-2.0.1-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file talklabs_stt-2.0.1.tar.gz.

File metadata

  • Download URL: talklabs_stt-2.0.1.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for talklabs_stt-2.0.1.tar.gz
Algorithm Hash digest
SHA256 70cdbb793252115653199aaded800e33f5ec4ac0ec7c6c3e7b0c7d079992c8cb
MD5 557e5d44f6da2aea076bc791e81d9172
BLAKE2b-256 995be69aedaaca6ccd2095969efb34afbf1e1825a9ba4735fdf92b76fac159fe

See more details on using hashes here.

File details

Details for the file talklabs_stt-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: talklabs_stt-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for talklabs_stt-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2a9d85320a2712c2f22b98987d585b2947a20d3fd6242fcf5178399ba5da624a
MD5 9f0d571dab4501b835ab2be514de85fd
BLAKE2b-256 fbb8814c882d4c7be452b8b74cb1f46bc4c8c64ac7b57cee757db135e2de9ae4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page