Chatterbox TTS

Gera áudio de texto para fala com reprodução automática usando o modelo Chatterbox TTS.

Documentação

Servidor MCP Chatterbox TTS

Um servidor simplificado do Model Context Protocol (MCP) que fornece geração de texto para fala com reprodução automática usando o modelo Chatterbox TTS. O servidor carrega o modelo automaticamente no primeiro uso e fornece notificações de progresso em tempo real para manter os usuários informados durante todo o processo.

Visão Geral

Este servidor MCP expõe a funcionalidade do Chatterbox TTS por meio de uma única ferramenta simplificada que gera fala a partir de texto e a reproduz automaticamente. O servidor gerencia carregamento do modelo, relatórios de progresso, gerenciamento de arquivos temporários e reprodução de áudio de forma integrada.

Recursos

Ferramenta Única: speak_text

A ferramenta speak_text fornece funcionalidade completa de texto para fala:

  • Parâmetros:

    • text (obrigatório): O texto a ser convertido em fala
    • exaggeration (opcional): Controla a expressividade (0,0-1,0, padrão 0,5)
    • cfg_weight (opcional): Controla a orientação sem classificador (0,0-1,0, padrão 0,5)
  • Recursos:

    • Carregamento automático do modelo com notificações de progresso
    • Gera fala usando arquivos temporários (limpeza automática)
    • Reproduz áudio automaticamente no macOS usando afplay
    • Atualizações de progresso em tempo real durante todas as fases:
      • Inicialização e carregamento do modelo
      • Geração de fala
      • Reprodução de áudio

Recurso: chatterbox://model-info

Obtenha informações sobre o status do modelo TTS e os recursos do dispositivo:

  • Status de carregamento do modelo (carregado/não carregado)
  • Informações do dispositivo (MPS/CUDA/CPU)
  • Disponibilidade de aceleração de hardware

Notificações de Progresso

O servidor fornece notificações detalhadas de progresso durante todo o processo de geração de fala:

  1. Fase de Carregamento do Modelo:

    • "Carregando modelo Chatterbox TTS..."
    • "Inicializando dispositivo PyTorch..."
    • "Carregando pesos do modelo..."
    • "Modelo carregado com sucesso!"
  2. Fase de Geração de Fala:

    • "Iniciando geração de fala..."
    • "Fala gerada, salvando em arquivo temporário..."
  3. Fase de Reprodução:

    • "Reproduzindo áudio..."
    • "Reprodução de áudio concluída!"
  4. Atualizações de Status:

    • Seleção de dispositivo (MPS/CUDA/CPU)
    • Uso de prompt de voz quando aplicável
    • Mensagens de sucesso/erro

Instalação

  1. Instalar dependências:

    pip install mcp torch torchaudio
    
  2. Instalar Chatterbox TTS: Siga as instruções de instalação do Chatterbox TTS para garantir que o módulo chatterbox.tts esteja disponível.

Configuração

Armazenamento de Arquivos de Áudio

Por padrão, o servidor armazena arquivos de áudio em ~/.chatterbox/audio. Você pode configurar um local personalizado usando:

Argumento de linha de comando:

python chatterbox_mcp_server.py --audio-dir /path/to/custom/audio/directory

Variável de ambiente:

export CHATTERBOX_AUDIO_DIR="/path/to/custom/audio/directory"
python chatterbox_mcp_server.py

Ordem de prioridade:

  1. Argumento de linha de comando --audio-dir (prioridade mais alta)
  2. Variável de ambiente CHATTERBOX_AUDIO_DIR
  3. Padrão: ~/.chatterbox/audio (prioridade mais baixa)

TTL de Arquivos de Áudio (Tempo de Vida)

Por padrão, os arquivos de áudio são limpos automaticamente após 1 hora. Você pode configurar um TTL personalizado:

Argumento de linha de comando:

python chatterbox_mcp_server.py --audio-ttl-hours 24  # Keep files for 24 hours

Variável de ambiente:

export CHATTERBOX_AUDIO_TTL_HOURS=24
python chatterbox_mcp_server.py

Ordem de prioridade:

  1. Argumento de linha de comando --audio-ttl-hours (prioridade mais alta)
  2. Variável de ambiente CHATTERBOX_AUDIO_TTL_HOURS
  3. Padrão: 1 hora (prioridade mais baixa)

Carregamento Automático do Modelo

Por padrão, o modelo TTS é carregado no primeiro uso para minimizar o tempo de inicialização. Você pode pré-carregá-lo na inicialização:

Argumento de linha de comando:

python chatterbox_mcp_server.py --auto-load-model

Isso carregará o modelo durante a inicialização do servidor, o que leva alguns segundos, mas garante que a primeira solicitação TTS seja mais rápida.

Recursos de Armazenamento de Áudio:

  • Os arquivos de áudio são armazenados de forma persistente com limpeza automática configurável
  • Os arquivos são acessíveis via recursos chatterbox://audio/{resource_id}
  • O diretório é criado automaticamente se não existir
  • Suporta caminhos relativos (serão expandidos) e notação de diretório inicial ~

Uso

Executando o Servidor

Autônomo:

python chatterbox_mcp_server.py

Com ferramentas MCP:

mcp dev chatterbox_mcp_server.py

Integração com Claude Desktop

Adicione à sua configuração MCP do Claude Desktop:

Configuração básica:

{
  "mcpServers": {
    "chatterbox-tts": {
      "command": "python",
      "args": ["/path/to/chatterbox_mcp_server.py"],
      "env": {}
    }
  }
}

Com configuração personalizada:

{
  "mcpServers": {
    "chatterbox-tts": {
      "command": "python",
      "args": [
        "/path/to/chatterbox_mcp_server.py", 
        "--audio-dir", "/custom/audio/path",
        "--auto-load-model",
        "--audio-ttl-hours", "24"
      ],
      "env": {
        "CHATTERBOX_AUDIO_DIR": "/custom/audio/path",
        "CHATTERBOX_AUDIO_TTL_HOURS": "24"
      }
    }
  }
}

Exemplo de Uso a partir de LLM

  1. Texto para fala básico:

    Please use the speak_text tool to say "Hello, welcome to the Chatterbox TTS demonstration!"
    
  2. Fala expressiva:

    Use speak_text to generate enthusiastic speech for "This is amazing!" with high expressiveness
    

A ferramenta automaticamente:

  • Carregará o modelo se necessário (com atualizações de progresso)
  • Gerará a fala
  • Reproduzirá o áudio
  • Limpará os arquivos temporários
  • Fornecerá atualizações de status durante todo o processo

Detalhes Técnicos

Suporte a Dispositivos

  • Apple Silicon (M1/M2/M3/M4): Usa aceleração MPS quando disponível
  • GPUs NVIDIA: Usa CUDA quando disponível
  • Fallback para CPU: Funciona em qualquer sistema

Processamento de Áudio

  • Usa arquivos temporários para armazenamento de áudio
  • Limpeza automática após a reprodução
  • Saída em formato WAV
  • Geração de áudio de alta qualidade

Gerenciamento do Modelo

  • O modelo carrega uma vez no primeiro uso
  • Compartilhado em todas as solicitações subsequentes
  • Carregamento seguro para threads com rastreamento de progresso
  • Detecção automática de dispositivo e otimização

Estrutura de Arquivos

chatterbox-mcp/
├── chatterbox_mcp_server.py    # MCP server implementation
└── README.md                   # This documentation

Desenvolvimento

Principais Melhorias Nesta Versão

  1. Interface Simplificada: Ferramenta única speak_text em vez de múltiplas ferramentas
  2. Reprodução Automática: Sem necessidade de reproduzir manualmente os arquivos gerados
  3. Notificações de Progresso: Atualizações em tempo real sobre carregamento do modelo e geração
  4. Armazenamento Persistente de Áudio: Arquivos de áudio são armazenados com limpeza automática configurável
  5. Melhor Tratamento de Erros: Relatórios abrangentes de erros e recuperação
  6. Fluxo de Trabalho Simplificado: Um comando gera e reproduz fala

Solução de Problemas

Problemas Comuns:

  1. Carregamento lento do modelo:

    • O primeiro carregamento baixa os pesos do modelo
    • Notificações de progresso mostram o status atual
    • Usos subsequentes são muito mais rápidos
  2. Problemas de reprodução de áudio:

    • O comando afplay é específico do macOS
    • Certifique-se de que o áudio do sistema esteja funcionando
    • Verifique as configurações de volume
  3. Problemas de memória:

    • O modelo requer memória significativa de GPU/CPU
    • Monitore os recursos do sistema durante o carregamento
    • Considere fechar outros aplicativos
  4. Seleção de dispositivo:

    • O servidor seleciona automaticamente o melhor dispositivo disponível
    • Verifique o recurso de informações do modelo para o dispositivo atual
    • MPS (Apple Silicon) > CUDA (NVIDIA) > CPU

Licença

Esta implementação do servidor MCP segue a mesma licença do modelo Chatterbox TTS subjacente.