Skip to content

scolastico/freepbx-aws-polly

Repository files navigation

FreePBX AWS Polly TTS Engine

badge badge badge

About

This is a FreePBX TTS Engine for AWS Polly. It is based on the FreePBX TTS Engine from The Web Machine. I updated the code to work with the aws sdk v3 (as v2 is no longer supported), packaged it with a 'new' version of nodejs (16) and added some new features.

Just want to use it?

See the step-by-step guide in the wiki.

Features

  • AWS Polly TTS Engine
  • Multi Language Support
  • Multi Voice Support
  • Prefix and Suffix Support

Installation

For beginners: see the step-by-step guide in the wiki.

Login to your FreePBX Server and run the following command:

curl -s https://raw.githubusercontent.com/scolastico/freepbx-aws-polly/main/install.sh | bash

Configuration

After the installation you can configure the /opt/scolastico/freepbx-aws-polly/config.json file.

See the defaultConfig.json for reference.

You can find the available voices here.

You should create a IAM user with the following permissions:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1234567890",
            "Effect": "Allow",
            "Action": [
                "polly:SynthesizeSpeech"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

FreePBX Configuration

After the installation you can configure the TTS Engine in the FreePBX GUI.

Settings -> Text to Speech Engines -> Add TTS Engine

Engine name: polly Engine path: /opt/scolastico/freepbx-aws-polly/bin

Installation Image

Usage

If you want to use a different voice or language you can use a !<presets as csv> before your text. You can chain multiple presets which will overwrite already set variables For example:

!en Hello World!

or

!de,2-seconds-silence Hello World!

Troubleshooting

If something does not seem to work, check the log files:

tail -f /opt/scolastico/freepbx-aws-polly/logs/combined.log

If this does not help, you are always welcome to open an issue.

Update

Just run the installation again.

Development

You need to install the following packages:

sudo apt install nodejs npm lame

Then install the dependencies:

pnpm install

License

This project is licensed under the Apache License 2.0.

About

Apache-2.0 A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

What you can do

Permissions Conditions Limitations
🟢 Commercial useThe licensed material and derivatives may be used for commercial purposes.
🔵 License and copyright noticeA copy of the license and copyright notice must be included with the licensed material.
🔴 LiabilityThis license includes a limitation of liability.
🟢 DistributionThe licensed material may be distributed.
🔵 State changesChanges made to the licensed material must be documented.
🔴 Trademark useThis license explicitly states that it does NOT grant trademark rights, even though licenses without such a statement probably do not grant any implicit trademark rights.
🟢 ModificationThe licensed material may be modified.
🔴 WarrantyThis license explicitly states that it does NOT provide any warranty.
🟢 Patent useThis license provides an express grant of patent rights from contributors.
🟢 Private useThe licensed material may be used and modified in private.

Information provided by https://choosealicense.com/licenses/apache-2.0/

Read more here.