希望你一切都好。
我们在Ubuntu(16.04.2 LTS)上使用带星号13的Voximal(Latest)。

我正在尝试调用返回PCM 8000流的Java Web服务,该流是我们使用Amazon polly生成的,然后我想严格使用vxml通过电话向用户播放相同的流。

首先,我想知道可以使用VXML2.1或CCXML播放PCM流,但到目前为止我搜索了很多内容,但都没有成功。

这是我的vxml代码,只是一个疯狂的尝试:)

 <?xml version="1.0" encoding="UTF-8"?>
   <vxml version="2.1">
     <var name="serviceVS" expr="'http://localhost:57144/polly/v1'"/>
      <form>
<filled>
 <data name="url" srcexpr="serviceVS" method="post" namelist="file"
  enctype="multipart/form-data"/>
  <assign name="urlToPlay" expr="url.url"/>

<log>
 urlToPlay =>
 <value expr="urlToPlay"/>
 </log>
  <audio expr ="urlToPlay"/>
 </filled>
  </form>
  </vxml>


下面是我的java代码

@RequestMapping(value="/polly/v1", method = {RequestMethod.POST,RequestMethod.GET})
public ResponseEntity<InputStreamResource> pollyEndPoint(@RequestParam("voiceId") String voiceId,
        @RequestParam("text")String text,@RequestParam("outputFormat") String outputFormat){
    InputStream speechStream= null;
    InputStreamResource inputStreamResource=null;
    HttpHeaders headers=null;
    try{
        speechStream=quikWitService.getPollyTextToSpeech(voiceId,text,outputFormat);
        inputStreamResource= new InputStreamResource(speechStream);
        headers = new HttpHeaders();
        headers.add("Content-Type",QuikWitUtils.getAudioFormatContentType(outputFormat));

    }
    catch(Exception e){
        logger.error(e);
        logger.debug(e.getStackTrace());
    }
    return new ResponseEntity<>(inputStreamResource,headers, HttpStatus.OK);


}

如果有人可以指出任何文章或更多信息,我将感到很荣幸。

谢谢

最佳答案

Polly与Voximal集成在一起(您只需要在“ TTS /提示”部分中设置正确的配置即可)。
Voximal使用命令行“ aws”生成本地音频内容,您可以使用Amazon TextToSpeech的全部功能,但是应通过使用另一种方法来减少响应时间(约1秒的延迟,但是Voximal使用的是缓存可以掩盖这种效果)。我们将在下一个Voximal版本中改进Polly集成。

另一种方法是使用我们的TTS / HTTP API创建自己的Polly集成:
https://wiki.voximal.com/doku.php?id=installation_guide:tts_http:start

对于每个部分,如果文本内容不在缓存中,则Voximal将生成HTTP请求。

关于java - 可以播放来自vxml或ccxml(Voximal)的音频流(PCM流8000),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46340506/

10-08 23:38