Bot de texto a voz de telegrama. Funciona en modo en línea y de texto y ofrece una interfaz conveniente para generar voz desde el texto.
Pruébelo: @SampleVoicebot.
Bot requiere una cuenta de AWS para trabajar. Utiliza Amazon Polly para generar voz y S3 para almacenar y compartir archivos de voz generados.
Bot se configura a través de variables ambientales, enumeradas en config.py .
La siguiente tabla muestra los parámetros requeridos:
| Parámetro | Descripción |
|---|---|
TELEGRAM_BOT_TOKEN | Token emitido por @botfather |
AWS_ACCESS_KEY_ID , AWS_SECRET_ACCESS_KEY | Credenciales de AWS |
AWS_S3_BUCKET | AWS Nombre del cubo donde se almacenarán los archivos |
AWS_REGION_NAME | Nombre de la región de AWS donde se encuentra su cubo, por ejemplo us-east-1 |
Otros parámetros:
| Parámetro | Valores | Por defecto | Descripción |
|---|---|---|---|
TELEGRAM_ADMIN_ID | intencionalmente | -1 | ID de usuario: administrador de este bot |
TELEGRAM_MIN_MESSAGE_LENGTH | intencionalmente | 1 | Longitud mínima del mensaje para generar voz |
TELEGRAM_MAX_MESSAGE_LENGTH | intencionalmente | 255 | Longitud máxima del mensaje para generar voz (los mensajes en línea no pueden exceder los 256 caracteres) |
TELEGRAM_INLINE_DEBOUNCE_MILLIS | intencionalmente | 1000 | Intervalo de debalización para solicitudes en línea entrantes para evitar generaciones de voz innecesarias |
LANGUAGE_DETECT_MAPPINGS | stri | Mapeaciones de idiomas en formato from=to . Se pueden unir múltiples sustituciones con comas, por ejemplo mk=ru,bg=ru,uk=ru | |
MAX_WORKERS | intencionalmente | 4 | Varios trabajadores utilizados para trabajos concurrentes (por ejemplo, síntesis de discurso) |
PREFETCH_LANGUAGES | stri | Lista de idiomas (por ejemplo ru,en ) para prefirtar la lista de voces* en el inicio de botes | |
VOICES | stri | Especifique las voces para usar, por ejemplo ru-RU=Tatyana,Maxim . Unirse a múltiples mapeos con ; . Lista de voces compatibles | |
DEBUG | 1 , 0 | 0 | Habilitar/deshabilitar el registro verboso |
* En modo en línea, Bot usa solo 2 voces por idioma para minimizar las solicitudes de sintetización
Se requiere un acceso público no autorizado y no autorizado a los objetos en el cubo. Esto se puede lograr con la política de deseos:
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " PublicRead " ,
"Effect" : " Allow " ,
"Principal" : " * " ,
"Action" : " s3:GetObject " ,
"Resource" : " arn:aws:s3:::samplebucket/* "
}
]
} * samplebucket debe ser sustituido con el nombre de su backet.
Vea los documentos para más información.
Las imágenes están disponibles en Ghcr.io.
$ docker build -t samplevoicebot .
Cree un archivo llamado .env y coloque sus credenciales, por ejemplo:
AWS_ACCESS_KEY_ID=<your-aws-access-key-id>
AWS_SECRET_ACCESS_KEY=<your-aws-secret-access-key>
AWS_REGION_NAME=<aws-region-name>
AWS_S3_BUCKET=<your-s3-bucket-name>
TELEGRAM_BOT_TOKEN=<your-telegram-bot-token>
<any-additional-parameters>
Correr:
$ docker run -d --env-file .env samplevoicebot