Telegram Bot baseado no Python 3 para executar consultas de fala para texto (STT) e Text-to-fala (TTS) . Idiomas suportados: russo , inglês (consultas e interface).

Módulo para trabalhar com API do Telegram: Aiograma.
Software para converter arquivos de áudio em diferentes formatos: FFMPEG.
As consultas STT e TTS são realizadas usando as seguintes bibliotecas:
Vosk (STT)
Pyttsx3 (TTS)
O BOT suporta duas vozes (masculino e feminino), cujos nomes são definidos no arquivo de configuração.
O BOT possui uma função especial chamada extra_text_processing , que introduz métodos adicionais de processamento de texto recebido da Vosk. Ao passar por isso, o texto pode ser mais humano e correto em termos de escrita. Os materiais necessários para esta função são armazenados estritamente no SRC/ETP .
Nota: Criado e testado na plataforma Windows, Python 3.11.4
As etapas a seguir são necessárias para que Rantovox funcione corretamente:
Clone o repositório (download do código fonte)
Crie um ambiente virtual usando python -m venv venv e ativá -lo
Instale dependências usando pip com requisitos.txt
Faça o download dos mais recentes modelos de Vosk Russian and English Language (o modelo pequeno é mais preferível), coloque -os no src/lang (você pode usar make download para baixar automaticamente e postar, requer curto e alcatrão)
Crie seu próprio arquivo .env na pasta root com variáveis descritas na seção de arquivos do ambiente .
git clone https://github.com/Ggorets0dev/rantovox-telegram-bot.git
cd rantovox-telegram-bot
pip install -r requirements.txtOs seguintes comandos estão disponíveis em Rantovoox:
Iniciar - inicie um bot para sua conta
Ajuda - Obtenha um resumo informativo dos princípios operacionais
Setlocale - defina a linguagem da interface do bot
Setvoice - Definir gênero de voz para solicitações (TTS)
Setlang - Defina a linguagem para solicitações (STT)
Um arquivo .env com as seguintes variáveis deve ser criado antes de executar o bot:
| Nome | Exemplo | Padrão | Descrição |
|---|---|---|---|
| Telegram_token | 1234567890: abcdefghijklmnopqrststxyzabcdefghi | - | Acesso Token ao Bot Telegram criado |
| Male_voice_name | ALESKANDR | - | Nome da voz a ser usado na narração masculina |
| Feminino_voice_name | Elena | - | Nome da voz a ser usado na narração feminina |
| Ru_lang_model_dirname | Vosk-model-small-ru-0.22 | - | Nome da pasta com modelo de idioma russo (deve estar em SRC/Lang) |
| ENG_LANG_MODEL_DIRNAME | VOSK-MODEL-SMALL-EN-US-0.15 | - | Nome da pasta com modelo de idioma russo (deve estar em SRC/Lang) |
| Max_request_index | 100 | 1000 | Um valor do intervalo 0 - N será atribuído aos arquivos criados temporariamente (afeta o número de clientes servidos simultaneamente) |
| Etp_enabled | Falso | Verdadeiro | Se o pós -processamento do texto bruto da conversão será usado |
Nota: Padrão - Valor que o bot assumirá por conta própria se o valor estiver no formato errado no arquivo do ambiente
Nota: Ligue para o bot para obter uma lista de votos disponíveis, preenchendo todas as variáveis restantes. Ele exibirá uma lista de valores disponíveis (tenha cuidado: nem todas as vozes suportam russo e inglês ao mesmo tempo)
O bot exclui todos os arquivos temporários imediatamente após uma solicitação TTS ou STT. Toda a conversão é feita no host com a ajuda das bibliotecas descritas acima. Somente o login e o ID do usuário são gravados em logs ao solicitar, a composição da solicitação permanece oculta para o host.