Home Transcrição automática de mensagens de voz no Telegram
Post
Cancelar

Transcrição automática de mensagens de voz no Telegram

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.
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.
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”.

Esta postagem está licenciada sob CC BY 4.0 pelo autor.