ivona-node icon indicating copy to clipboard operation
ivona-node copied to clipboard

Ivona Cloud (via Amazon services) client library for Node

DEPRECATION WARNING: Amazon Polly will replace the IVONA Speech Cloud Beta service, which will be deprecated on June 30th, 2017.

Node IVONA

Node client library for IVONA Speech Cloud API. Yes, this is up-to-date and uses the most recent AWS Signature 4 scheme (thanks to aws4). All you need is your Ivona access and secret (the one only given to you once upon creating it) keys.

Supported API Calls

  • CreateSpeech
  • ListVoices
  • PutLexicon
  • GetLexicon
  • DeleteLexicon
  • ListLexicons

Installation

npm install ivona-node

Documentation

No current documentation, as the entire extent of the API can be viewed below.

Example usage

    var ivona = new Ivona({
        accessKey: 'IVONA_ACCESS_KEY',
        secretKey: 'IVONA_SECRET_KEY'
    });

    ivona.listVoices()
        .on('complete', function(voices) {
            console.log(voices);
        });

    //  ivona.createVoice(text, config)
    //  [string] text - the text to be spoken
    //  [object] config (optional) - override Ivona request via 'body' value
    ivona.createVoice('This is the text that will be spoken.', {
        body: {
            voice: {
                name: 'Salli',
                language: 'en-US',
                gender: 'Female'
            }
        }
    }).pipe(fs.createWriteStream('text.mp3'));

Lexicons (via @UnaliWear)

    var ivona = new Ivona({
        accessKey: 'IVONA_ACCESS_KEY',
        secretKey: 'IVONA_SECRET_KEY'
    });

    //  ivona.putLexicon(name, content)
    //  [string] name - the name of this lexicon
    //  [string] content - PLS xml
    //  [object] config (optional) - override Ivona request via 'body' value
    ivona.putLexicon('newLexicon', '<?xml ... ?><lexicon>...</lexicon>')
        .on('complete', function(lexicons) {
            console.log(lexicons);
        });

    //  ivona.getLexicon(name)
    //  [string] name - the name of this lexicon
    //  [object] config (optional) - override Ivona request via 'body' value
    ivona.getLexicon('newLexicon')
        .on('complete', function(pls) {
            console.log(pls);
        });

    //  ivona.deleteLexicon(name)
    //  [string] name - the name of this lexicon
    //  [object] config (optional) - override Ivona request via 'body' value
    ivona.deleteLexicon('newLexicon')
        .on('complete', function() {
            console.log('Done');
        });

    //  ivona.listLexicons()
    //  [object] config (optional) - override Ivona request via 'body' value
    ivona.listLexicons()
        .on('complete', function(lexicons) {
            console.log(lexicons);
        });

With Proxy Support (via @kuzzmi)

    var ivona = new Ivona({
        accessKey: 'IVONA_ACCESS_KEY',
        secretKey: 'IVONA_SECRET_KEY',
        proxy: {
            host: '0.0.0.0',
            port: 12345
        }
    });

Contributors

  • @kuzzmi
  • @UnaliWear
  • @Rawa