Pyrogram
Esta é uma biblioteca Python que permite a comunicação direta com os servidores do Telegram, por meio do protocolo MTProto. Funciona usando a chamada API do Telegram, diferente da API de Bots. Apesar de a Pyrogram também servir para a criação de bots, não é possível afirmar que é vantajoso usar a API do Telegram em todos os casos, pois existem métodos exclusivos em cada uma das opções. Este texto, por tratar de uma automação em conta de usuário, tal API é a única alternativa.
Diferença entre a API de Bots e a API do Telegram. Fonte
Credenciais
Para gerar as credenciais necessárias para se comunicar aos servidores do Telegram, acesse https://my.telegram.org/apps. Digite seu telefone e clique em Next. Em seguida, digite o código recebido via Telegram. Para que tudo funcione serão necessários os valores de App api_id e App api_hash.
Estes dados são confidenciais. Jamais os compartilhe.
OpenAI Whisper
A transcrição de textos é feita usando o modelo de reconhecimento de voz da OpenAI, chamado Whisper. É um modelo grátis e que funciona localmente, ou seja, não exige comunicação com nenhum servidor externo. Tudo acontece na sua máquina, resguardando sua privacidade.
O Whisper possui cinco modelos de reconhecimento de voz, que devem ser usados de acordo com a disponibilidade de recursos computacionais do servidor. Leia mais no repositório oficial. O presente script usa o modelo base
, porém, se possível, recomendo o uso do small
para que as transcrições sejam mais exatas.
Voice2Text
Respositório: https://github.com/GabrielRF/Voice2Text
Este pequeno script usa as credenciais da conta do Telegram para transcrever todas as mensagens de voz que forem recebidas em conversas privadas. A transcrição é automática, não exigindo nenhuma ação para que aconteça.
Requisitos
Instale os requisitos usando o comando pip install -r requirements.txt
.
Este passo é um pouco demorado devido ao tamanho da
openai-whisper
.
Caso queira instalar manualmente, os requisitos são:
1
2
3
4
openai-whisper==20230314
TgCrypto==1.2.3
Pyrogram==2.0.106
ffmpeg-python==0.2.0
Voice2Text.py
Transcrição de áudio em conversa privada.
Ajustes os valores de api_id
e api_hash
nas linhas 7 e 8 do arquivo Voice2Text.py
.
1
2
3
4
5
6
7
8
9
10
11
12
from pyrogram import Client, filters, enums
import asyncio
import time
import os
import whisper
api_id = 123456789
api_hash = "1a2b3c4d5e6f7g8h9i0j"
app = Client("Voice2Text", api_id=api_id, api_hash=api_hash)
model = whisper.load_model("base")
Altere a linha 16 do arquivo caso queira utilizar um modelo diferente do base
.
Por fim, execute o script usando o comando:
1
python Voice2Text.py
Na primeira execução será necessário autenticar-se em sua conta do Telegram. Siga os passos e será criado um arquivo
.session
. Para remover a sessāo, remova este arquivo.
Para manter o processo em execução, leia o post “Como manter um processo rodando para sempre”.