TEXTRAMME TEXT-TOT-SPEECH BOT. Il fonctionne à la fois en mode en ligne et en mode texte et offre une interface pratique pour générer la voix à partir du texte.
Essayez-le: @SampleVoiceBot.
Le bot nécessite un compte AWS pour fonctionner. Il utilise Amazon Polly pour générer la voix et S3 pour stocker et partager des fichiers vocaux générés.
Le bot est configuré via des variables environnementales, répertoriées dans config.py .
Le tableau ci-dessous montre les paramètres requis:
| Paramètre | Description |
|---|---|
TELEGRAM_BOT_TOKEN | Token émis par @botfather |
AWS_ACCESS_KEY_ID , AWS_SECRET_ACCESS_KEY | Contaliens AWS |
AWS_S3_BUCKET | Nom du seau AWS où les fichiers seront stockés |
AWS_REGION_NAME | Nom de la région AWS où votre seau est situé, par exemple us-east-1 |
Autres paramètres:
| Paramètre | Valeurs | Défaut | Description |
|---|---|---|---|
TELEGRAM_ADMIN_ID | int | -1 | ID utilisateur - administrateur de ce bot |
TELEGRAM_MIN_MESSAGE_LENGTH | int | 1 | Longueur de message minimale pour générer une voix |
TELEGRAM_MAX_MESSAGE_LENGTH | int | 255 | Longueur de message maximum pour générer la voix (les messages en ligne ne peuvent pas dépasser 256 caractères) |
TELEGRAM_INLINE_DEBOUNCE_MILLIS | int | 1000 | Déboucher l'intervalle pour les demandes en ligne entrantes pour éviter les générations vocales inutiles |
LANGUAGE_DETECT_MAPPINGS | Str | Mappages de langues au format from=to . Des substitutions multiples peuvent être jointes à des virgules, par exemple mk=ru,bg=ru,uk=ru | |
MAX_WORKERS | int | 4 | Un certain nombre de travailleurs utilisés pour des emplois simultanés (par exemple, la synthèse de la parole) |
PREFETCH_LANGUAGES | Str | Liste des langues (par exemple ru,en ) pour pré-feuilleter la liste des voix * sur le startup de bot | |
VOICES | Str | Spécifiez des voix à utiliser, par exemple ru-RU=Tatyana,Maxim . Rejoignez plusieurs mappages avec ; . Liste des voix prises en charge | |
DEBUG | 1 , 0 | 0 | Activer / désactiver la journalisation verbeuse |
* En mode en ligne, Bot n'utilise que 2 voix par langue pour minimiser les demandes de synthèse
Un accès public non restreint et non autorisé aux objets du seau est nécessaire. Cela peut être réalisé avec la politique du seau:
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " PublicRead " ,
"Effect" : " Allow " ,
"Principal" : " * " ,
"Action" : " s3:GetObject " ,
"Resource" : " arn:aws:s3:::samplebucket/* "
}
]
} * samplebucket doit être remplacé par votre nom de backet.
Voir les documents pour plus d'informations.
Des images sont disponibles sur ghcr.io.
$ docker build -t samplevoicebot .
Créez un fichier nommé .env et mettez vos informations d'identification, par exemple:
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>
Courir:
$ docker run -d --env-file .env samplevoicebot