我使用 PortAudio 作为语音合成(文本到语音)引擎的前端,我想提供一个同步语音功能,等待播放完成。
似乎所有处理此问题的 PortAudio 函数只等到底层 API 完成使用音频数据,而不是直到播放完成。
PortAudio 有可能吗?如果没有,是否有任何好的跨平台替代 PortAudio(必须包含 C 接口)可能支持这一点?
我不确定 streamFinished 回调是否如此处所述:
http://portaudio.com/docs/v19-doxydocs/portaudio_8h.html#aa11e7b06b2cde8621551f5d527965838
是你想要的。它可能会遇到同样的问题,但我认为它会起作用。
另外两种可能性是:
您可能还对此文档感兴趣:
http://www.rossbencina.com/static/writings/portaudio_sync_acmc2003.pdf
恐怕我不知道其他 API 对这类事情有更好的支持。