是否可以将Web Speech API中的合成语音用作SourceNode内部Web Audio API的音频上下文?
如何使用SpeechSynthesisUtterance()及window.speechSynthesis.speak()在Chromium浏览器?
var msg = new SpeechSynthesisUtterance( "Hello I am browser" );
window.speechSynthesis.speak( msg );
Run Code Online (Sandbox Code Playgroud)
系统扬声器没有输出.
已经注意到API的问题HTML5 SpeechSynthesis API是垃圾 ;
var voices = window.speechSynthesis.getVoices();
Run Code Online (Sandbox Code Playgroud)
记录voices标识符的空数组; 并且只有chrome not chromium据称支持Web Speech API规范,Web Speech API Demonstrationhtml在演示时将元素的值设置为在页面启用麦克风时发声的话语.
至少有一些与功能相关的JavaScript显然是
var langs =
[['Afrikaans', ['af-ZA']],
['Bahasa Indonesia',['id-ID']],
['Bahasa Melayu', ['ms-MY']],
['Català', ['ca-ES']],
['?eština', ['cs-CZ']],
['Dansk', ['da-DK']],
['Deutsch', ['de-DE']],
['English', ['en-AU', 'Australia'],
['en-CA', 'Canada'],
['en-IN', 'India'],
['en-NZ', 'New Zealand'],
['en-ZA', 'South Africa'],
['en-GB', 'United Kingdom'],
['en-US', …Run Code Online (Sandbox Code Playgroud) 我可以使用Chrome的Speech Synthesis API(版本33.0.1750.112 beta-m)以下列方式从文本生成语音
var transcript = document.getElementById("speechTxt").value;
var msg = new SpeechSynthesisUtterance(transcript);
speechSynthesis.speak(msg);
Run Code Online (Sandbox Code Playgroud)
现在我想将这个语音保存在一个文件中(可能使用WebAudio API).这有可能通过一些函数调用吗?
我已经查看了语音合成API中的方法,没有什么可以保存这些语音数据.使用WebAudio API我能够在麦克风中捕获这种语音,但会引入许多不必要的噪音.是否无法将此语音数据保存在Chrome浏览器本身中,因为它是首先生成它的人?
该语音合成API允许文本到语音功能的浏览器测试版.但是,浏览器会自动播放TTS请求的结果.如何访问音频结果以进行后处理并禁用API的默认行为?
是否可以使用 W3C Web Speech API 编写 Javascript 代码来生成带有语音给定文本的音频文件(wav、ogg 或 mp3)?我的意思是,我想做这样的事情:
window.speechSynthesis.speak(new SpeechSynthesisUtterance("0 1 2 3"))
Run Code Online (Sandbox Code Playgroud)
但我希望用它产生的声音不是输出到扬声器而是输出到文件。
我可以为文本到语音应用添加我自己的语音字典吗?如果有可能哪种开发语言最适合开发这种类型的应用程序有几种文本到语音的在线工具,但它们有自己的声音.我必须像那个应用程序一样开发.请告诉我如何继续我的概念.
Chromium 是否支持语音合成 API?我需要安装语音吗?如果是这样,我该怎么做?我正在使用 Fedora。像视频这样的声音是否需要安装额外的软件包才能正常工作?
我试过这个代码:
var msg = new SpeechSynthesisUtterance('I see dead people!');
msg.voice = speechSynthesis.getVoices().filter(function(voice) {
return voice.name == 'Whisper';
})[0];
speechSynthesis.speak(msg);
Run Code Online (Sandbox Code Playgroud)
但是函数 SpeechSynthesis.getVoices() 返回空数组。
我也试过:
window.speechSynthesis.onvoiceschanged = function() {
console.log(window.speechSynthesis.getVoices())
};
Run Code Online (Sandbox Code Playgroud)
函数被执行,但数组也是空的。
在https://fedoraproject.org/wiki/Chromium 上有使用--enable-speech-dispatcher标志的信息,但是当我使用它时,我收到了不支持标志的警告。