希望你一切都好。
我们在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/