使用 IBM Watson 文本到语音服务处理多个查询



我正在使用 ibm watson tts API,但问题是当我合成多个句子(一个接一个(时,输出之间会有轻微的延迟,但我希望它是连续的(好像单独的句子在一个话语中说出来(。有没有办法这样做?或者有没有其他tts解决方案可以帮助我解决这个问题?

这是使用 API 合成不同话语的方法:

public void sayUtterances() {
String[] splitUtterance = {"this is", "the sentence I would",
"like to say in one utterance", "without pausing"};
for(int i = 0; i < splitUtterance.length; i++) {
textToSpeechService.synthesize(splitUtterance[i], Voice.EN_ALLISON);
}
}

并行和异步调用服务。在调用第二句的服务之前,您无需等待第一句的响应。

TTS 在每个合成的开始和结束时生成小的静音(~400ms(。因此,如果你一个接一个地玩,你仍然会在他们之间得到这些沉默。您应该通过删除 0 星等样本来手动删除它们。

此外,该服务具有相当大的输入限制,因此您可以通过调用服务来简单地一次生成多个短语,"这是我想在一个话语中说出的句子,而无需暂停"。该服务是一种流媒体服务,因此它将尽快开始生成音频,您可以将它们直接传递到音频设备,而无需收到完整的响应。

最新更新