如何在浏览器(FF / Chrome)中将Google文本播放为语音音频数据而不保存为文件

问题描述 投票:0回答:1

我正在从使用Google文本到语音服务的服务器(node.js)获取文本到语音的数据。 Google服务以wave形式发送数据(适用于LINEAR16)

为了演示目的,我需要将数据播放到html音频播放器中。但是我无法解码要播放的数据。

HTML

<audio id="audio" controls></audio>

JS

const audio = document.getElementById('audio');

// audio data LINEAR16
fetch('https://gist.githubusercontent.com/prionkor/9b9c44e39b3ae1340152bcc6b3652ef0/raw/6558b393442f60e86c5644750559cc0535e3480d/audio.json').then(res => {
  return res.json();
}).then(data => {
  console.log(data);
  audio.src = URL.createObjectURL(data.data);
});

我已将数据复制到要点(从mongodb数据库中复制。我不确定纯复制和粘贴是否会破坏数据),并制作了一个jsfiddle示例。

https://jsfiddle.net/sisir/rwd0v7hs/5/

我在网络上找到的示例演示了如何根据数据创建.wav文件然后播放,但我需要通过websocket播放实时供稿中的数据。因此需要即时播放。

编辑

NodeJS SDK返回带有Buffer的对象(请参见下文)。当我使用toString()方法将其保存在mongodb中(使用mongoose)时。它解释为数据(要点)。

示例控制台输出

{
  audioContent: <Buffer 4f 67 67 53 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 5e c1 a1 01 13 4f 70 75 73 48 65 61 64 01 01 38 01 c0 5d 00 00 00 00 00 4f 67 67 ... 3746 more bytes>
}

javascript html5-audio wav google-text-to-speech
1个回答
0
投票

从音频对象中,使用js ttsAudio = new Audio(audio goes here);使其音频然后使用js ttsAudio.Play();

播放
© www.soinside.com 2019 - 2024. All rights reserved.