GSM SIM800C文本到语音音频流



我有这个usb-to-gsm serial serial-gprs-sim800c模块,我已经成功地将命令发送给它并做事,但是我真正想要的是文字到语音的文字功能,我能够生成一个AMR音频文件,将其上传到模块的内部内存,并在某人调用时播放。

但是,呼叫者听到的消息将是动态的,而tts将实时运行,因此音频文件的上传过程将导致不良的延迟,我有什么办法可以通过模块传输一些音频?<<<<

谢谢。

这是我要做的。

  1. 开始通话(ATDxxxxxxxxxxx;(
  2. 设置模式(AT+DTAM=2(
  3. 开始录制(AT+CREC=1,1,0(
  4. 说我想播放到麦克风5.停机录制(AT+CREC=2(
  5. 挂断(ATH(

现在,我可以使用以下

播放我录制的内容
  1. 开始通话(ATDxxxxxxxxxxx;(
  2. 设置模式(AT+DTAM=2(
  3. 开始播放(AT+CREC=4,1,0,80(
  4. 挂断(ATH(

不知道如何动态执行此操作,甚至上传 *.amr文件。

如果您可以分享过去是否有任何改进的命令,将非常感谢。

回答@anothersanj

我正在使用SerialPort-GSM使事情变得更容易。这就是我的方式:

modem.executeCommand('AT+FSMKDIR=C:\status\',(result) => { log.debug(result); });
        //reading the audio file from your computer with nodejs fs module
        fs.readFile('tts2.amr', function(err, amr_data) {
            if(!err) {
                let fsize= fs.statSync('tts2.amr').size;
                log.debug(fsize);
                //creating the file on the GSM module's memory
                modem.executeCommand('AT+FSCREATE=C:\stats\tts2.amr',(result) => { log.debug(result); });
                //writing the file on the GSM module's memory
                modem.executeCommand('AT+FSWRITE=C:\stats\tts2.amr,0,'+fsize+',100',(result) => { 
                    modem.port.write(amr_data);
                });
                //Display file list on specified path (like ls command)
                modem.executeCommand('AT+FSLS=C:\stats',(result) => { log.debug(result); });
                
            }
        }); 

,每当有人打电话时播放文件:

//playing the file on incoming call
        modem.on('onNewIncomingCall', (result) => { 
            log.debug(result); 
            modem.executeCommand('ATA',(result) => { log.debug(result); });
            modem.executeCommand('AT+CMEDPLAY=1,"C:\stats\tts2.amr",0,100',(result) => { log.debug(result); });
            modem.executeCommand('AT+DDET=1',(result) => { log.debug(result); });
        });

相关内容

  • 没有找到相关文章

最新更新