【发布时间】:2021-08-19 08:59:43
【问题描述】:
我正在使用 microsoft-cognitiveservices-speech-sdk 对文本转语音做出反应。我希望能够播放使用网页上的音频元素生成的音频。理想情况下,我想获取二进制数据并将其设置为元素的源并使用js播放元素。 有没有办法做到这一点?
【问题讨论】:
标签: reactjs text-to-speech microsoft-cognitive azure-cognitive-services
我正在使用 microsoft-cognitiveservices-speech-sdk 对文本转语音做出反应。我希望能够播放使用网页上的音频元素生成的音频。理想情况下,我想获取二进制数据并将其设置为元素的源并使用js播放元素。 有没有办法做到这一点?
【问题讨论】:
标签: reactjs text-to-speech microsoft-cognitive azure-cognitive-services
这必须是元素的来源吗?如果您可以只存储结果数据的 ArrayBuffer,则可以使用 BaseAudioPlayer 重播该 Buffer。例如:
var audioBuffer = null;
[...]
synthesizer.synthesisCompleted = function (s, e) {
audioBuffer = e.result.audioData;
};
[...]
playbackButton.addEventListener("click", function () {
var p = new SpeechSDK.BaseAudioPlayer();
if(!!p && !!audioBuffer) {
console.log(`playing buffer with length ${audioBuffer.byteLength}`);
p.playAudioSample(audioBuffer);
}
});
我已在 iOS 14.6 上对此进行了测试,但仅适用于 Riff WAV。不确定它是否适用于其他格式。
【讨论】: