使用文本到语音消息发起呼叫

问题描述 投票:2回答:1

我使用NodeJs的Asterisk-Manager包

https://www.npmjs.com/package/asterisk-manager

并将磁带公告作为文本,必须通过文本转换为语音。当我尝试拨打外拨电话号码时,如何设置文本到语音变量和收件人?一个例子是

ami.action({
    'action': 'originate',
    '??? phonenumber ???': '12345',
    '??? text to be spoken ???': 'Hello, this is a tape announcement'
  }, (err, res) => {
    if (err) {
        throw err;
    }

    console.log('everything was fine');
  });

编辑:

我知道FreePbx用于管理。据我所知,Asterisk引擎有一个TTS模块。

我想我可以选择这个代码

const { phoneNumber, announcement } = phoneInfo; // the required data

ami.action({
    channel: `SIP/${phoneNumber}`,
    application: 'SendText',
    data: announcement
}, (err, res) => {
    if (err) {
      throw err;
    }

    console.log(res);
});

并且引擎将管理数据属性

javascript node.js asterisk asteriskami
1个回答
2
投票

Originate应用程序本身只会将被叫号码发送到应用程序或扩展程序。在调用播放应用程序之前,您应该创建一个音频文件。所以你的代码看起来像这样:

let filePath = await yourTtsService.generateAudioFile('Hello, this is a tape announcement')

ami.action({
    'action': 'originate',
    'channel': 'SIP/123', // target number, depend on your trunk type
    'application': 'Playback',
    'data': filePath
})

要生成音频文件,您可以使用google api,请参阅https://cloud.google.com/text-to-speech/docs/reference/libraries上的示例

© www.soinside.com 2019 - 2024. All rights reserved.