Telegramm Text-to-Speech-Bot. Es funktioniert sowohl im Inline- als auch im Textmodus und bietet eine bequeme Schnittstelle, um Sprache aus dem Text zu generieren.
Probieren Sie es aus: @SampleVoiceBot.
Bot benötigt ein AWS -Konto, um zu arbeiten. Es verwendet Amazon Polly, um Voice und S3 zum Speichern und Freigeben erzeugter Sprachdateien zu generieren.
Bot wird über Umgebungsvariablen konfiguriert, die in config.py aufgeführt sind.
Die folgende Tabelle zeigt die erforderlichen Parameter:
| Parameter | Beschreibung |
|---|---|
TELEGRAM_BOT_TOKEN | Token von @BotFather ausgestellt |
AWS_ACCESS_KEY_ID , AWS_SECRET_ACCESS_KEY | AWS -Anmeldeinformationen |
AWS_S3_BUCKET | AWS -Eimer -Name, bei dem Dateien gespeichert werden |
AWS_REGION_NAME | AWS Region Name, wo sich Ihr Eimer befindet, z us-east-1 |
Andere Parameter:
| Parameter | Werte | Standard | Beschreibung |
|---|---|---|---|
TELEGRAM_ADMIN_ID | int | -1 | Benutzer -ID - Administrator dieses Bots |
TELEGRAM_MIN_MESSAGE_LENGTH | int | 1 | Minimale Nachrichtenlänge, um Sprache zu generieren |
TELEGRAM_MAX_MESSAGE_LENGTH | int | 255 | Maximale Nachrichtenlänge zum Generieren von Sprache (Inline -Nachrichten dürfen 256 Zeichen nicht überschreiten) |
TELEGRAM_INLINE_DEBOUNCE_MILLIS | int | 1000 | Entdecken Sie ein Intervall für eingehende Inline -Anfragen, um unnötige Sprachgenerationen zu vermeiden |
LANGUAGE_DETECT_MAPPINGS | str | Sprachzuordnungen im Format from=to . Mehrere Substitutionen können mit Kommas, z. mk=ru,bg=ru,uk=ru verbunden werden | |
MAX_WORKERS | int | 4 | Eine Reihe von Arbeitnehmern, die für gleichzeitige Jobs verwendet werden (z. B. Sprachsynthese) |
PREFETCH_LANGUAGES | str | Listen Sie Sprachen (z. B. ru,en ) auf, um die Stimmenliste* beim Bot Startup vorzulegen | |
VOICES | str | Geben Sie die zu verwendenden Stimmen an, z. B. ru-RU=Tatyana,Maxim . Schließen Sie mehrere Zuordnungen mit ; . Liste der unterstützten Stimmen | |
DEBUG | 1 , 0 | 0 | Aktivieren/deaktivieren Sie die ausführliche Protokollierung |
* Im Inline -Modus verwendet Bot nur 2 Stimmen pro Sprache, um Synthese -Anforderungen zu minimieren
Ein uneingeschränkter, nicht autorisierter öffentlicher Zugang zu den Objekten im Eimer ist erforderlich. Dies kann mit Bucket -Richtlinien erreicht werden:
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " PublicRead " ,
"Effect" : " Allow " ,
"Principal" : " * " ,
"Action" : " s3:GetObject " ,
"Resource" : " arn:aws:s3:::samplebucket/* "
}
]
} * samplebucket muss mit Ihrem Backet -Namen ersetzt werden.
Weitere Informationen finden Sie unter Dokumente.
Bilder sind unter ghcr.io erhältlich.
$ docker build -t samplevoicebot .
Erstellen Sie eine Datei namens .env und geben Sie Ihre Anmeldeinformationen ein, zum Beispiel:
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>
Laufen:
$ docker run -d --env-file .env samplevoicebot