标签: webspeech-api

禁用亵渎过滤器以通过Web Speech API进行识别

我正在使用webkitSpeechRecognition实例访问Chrome中的本机语音识别.问题是Web Speech API规范没有涵盖亵渎性过滤的主题,但默认情况下,Google的Speech API启用了亵渎性过滤器.这不是一个主要问题 - 幸运的是,Web Speech API的默认过滤器显示第一个字母,并将其余部分隐藏在星号下.然而,有些情况下,以某个字母开头且具有一定长度的单词来自不同的cuss单词并猜测该人所说的内容可能无法给出准确的结果.

这里的问题是:如何控制Chrome中Web Speech API的亵渎过滤级别?JavaScript实例不会公开任何其他(特定于平台的)变量.实际的Speech API具有pfilter可以设置为0(无过滤)的URL参数,1(使用####过滤和替换单词)或2(使用星号过滤和替换除第一个字母以外的所有字符).此参数也为Chrome Extension开发人员公开,它位于SpeechInputStartOptions(但它是一个布尔变量).

PS SpeechInputStartOptions文档介绍了默认的Chrome过滤设置.我无法找到此设置或有关它所在位置的任何信息.即使理想情况下,解决方案也不应该让用户不得不做某事,找到适合它的Chrome浏览器设置仍然是一个突破.

javascript google-chrome webspeech-api

8
推荐指数
1
解决办法
1018
查看次数

如何从window.speechSynthesis.speak()调用捕获生成的音频?

以前的问题已经提出了相同或类似的询问

但似乎没有使用创建的变通方法window.speechSynthesis().虽然有一些解决方法使用epeak,meSpeak 如何在Chrome浏览器中创建文本或将文本转换为音频?或向外部服务器发出请求.

如何捕捉和记录的音频输出window.speechSynthesis.speak()调用和返回结果为Blob,ArrayBuffer,AudioBuffer或其他对象类型?

javascript audio html5 text-to-speech webspeech-api

8
推荐指数
1
解决办法
3796
查看次数

HTML5 中的 Web Speech API 支持哪些语言?

我想看看网络语音 API 支持哪些语言,并尝试贡献和添加其他语言。

html webspeech-api

7
推荐指数
1
解决办法
4791
查看次数

一段时间后,Web语音API在没有输入的情况下停止侦听

我正在使用网络语音API但是一旦经过一段时间(一分钟或两分钟)而没有任何声音输入,它就会完全停止听.我知道这是因为我把它的解析后的文本记录到控制台,然而,当我不说话一两分钟时它会停止这样做.

有没有什么办法解决这一问题?

google-chrome webspeech-api webkitspeechrecognition

7
推荐指数
1
解决办法
1868
查看次数

chrome.tts.speak字符限制

我在我的扩展程序中使用Chrome的tts服务.根据chrome.tts文档:

文本的最大长度为32,768个字符.

但是,当我传递超过250个字符的字符串时,引擎将无法读取所有话语(它将停止在单词的中间读取它).我现在想知道这是一个错误还是这个设计.Web语音API具有类似于规范中描述的字符限制,并且其行为方式相同.

我想知道我做错了什么,或者它只取决于浏览器中的TTS引擎而我无法用它做任何事情?

google-chrome text-to-speech google-chrome-extension webspeech-api

6
推荐指数
1
解决办法
1270
查看次数

MediaStream 上的 Web 语音识别

呼叫会SpeechRecognition.start自动请求麦克风权限,但是有什么方法可以开始SpeechRecognition自定义MediaStream(例如从getDisplayMedia)?

javascript frontend speech-recognition webspeech-api mediastream

6
推荐指数
0
解决办法
325
查看次数

收集结果时,webkitSpeechRecognition"落后"

尝试使用Web Speech API时有点痒痒.我完全从文章中复制了代码,我在你说话的时候遇到了问题,但是直到你再说一遍才会发生任何事情.

[小提琴:http://jsfiddle.net/w75v2tm5/ ]

JS:

if (!('webkitSpeechRecognition' in window)) {
    //handle error stuff here...
} else {
    var recognition = new webkitSpeechRecognition();
    recognition.continuous = true;
    recognition.interimResults = false;

    recognition.start();

    var final_transcript = '';

    recognition.onresult = function (event) {
        var interim_transcript = '';
        if (typeof (event.results) == 'undefined') {
            recognition.onend = null;
            recognition.stop();
            upgrade();
            return;
        }
        for (var i = event.resultIndex; i < event.results.length; ++i) {
            if (event.results[i].isFinal) {
                final_transcript += event.results[i][0].transcript;
            } else { …
Run Code Online (Sandbox Code Playgroud)

javascript api webkit speech-to-text webspeech-api

5
推荐指数
1
解决办法
5570
查看次数

Web Speech API 无法在 Android 版 Chrome 中正确加载语音

我有一个简单的应用程序,应该读出以所选语言输入到输入字段中的文本:https://speech-synthesis-demo.glitch.me/

这似乎在多个浏览器的桌面上运行良好。但是,当我尝试在 Android 版 Chrome 中运行它时,更改语言似乎没有任何效果,并且仅使用默认语言(在我的例子中为英语)。

出于测试目的,我想做的是测试不同语言的计数。例如,如果您在任何桌面浏览器上的应用程序中输入“一”一词,您将听到以所选语言说出的第一名。然而,在我的 Android 设备上的 Chrome 上,无论从下拉列表中选择哪种语言,我都只能听到“一个”用英语说话。

该代码与MDN上的speechSynthesis示例完全相同: https: //developer.mozilla.org/en-US/docs/Web/API/Window/speechSynthesis

let synth = window.speechSynthesis;

const inputForm = document.querySelector('form');
const inputTxt = document.querySelector('input');
const voiceSelect = document.querySelector('select');

let voices;

function populateVoiceList(){
  voices = synth.getVoices();

  for(var i=0; i< voices.length; i++){
    let option = document.createElement('option');
    option.textContent = voices[i].name + ' (' + voices[i].lang + ')';

    option.setAttribute('data-lang', voices[i].lang);
    option.setAttribute('data-name', voices[i].name);
    voiceSelect.appendChild(option);
  }
}

populateVoiceList();
if (speechSynthesis.onvoiceschanged !== undefined) {
  speechSynthesis.onvoiceschanged = populateVoiceList;
}

inputForm.onsubmit = function(event){
  event.preventDefault();

  let utterThis …
Run Code Online (Sandbox Code Playgroud)

javascript android google-chrome speech webspeech-api

5
推荐指数
1
解决办法
1992
查看次数

无法手动设置 SpeechSynthesisVoice 的原型

这个问题在某种程度上是为了理解原型get-set。

我有一个场景,需要将SpeechSynthesis支持的语音映射到Google Translation API支持的语言代码。例如,

在此输入图像描述

现在,我可以通过获取语音运行时或存储语音并在 javascript 中的某种方法中对映射进行硬编码来执行相同的操作。如果我采用运行时方法,我需要调用getVoice()speechSynthesis.onvoiceschanged = () => {}映射号码,这些号码在每个语音更改事件中都会被调用。所以,我想要进行硬编码。

现在,当我将映射数组存储在变量中并通过索引调用它时,我得到了 SpeechSynthesisVoice 对象,就像我们在getVoices()[index].

此外,如果我将此对象值设置为speechSynthesis.voice,则会收到错误:

Uncaught TypeError: Failed to set the 'voice' property on 'SpeechSynthesisUtterance': The provided value is not of type 'SpeechSynthesisVoice'.
Run Code Online (Sandbox Code Playgroud)

这是由于手动存储的对象值的原型不匹配造成的。

例如,

1.SpeechSynthesisVoice对象:

在此输入图像描述

2. 手动存储SpeechSynthesisVoice对象的值:

在此输入图像描述

为了解决这个问题,我使用 获取了 SpeechSynthesisVoice 对象的原型getVoice(),然后将其设置为一个变量,并进一步将此变量设置为我的手动映射对象。喜欢,

得到:

voicePrototype = getVoices()[9].__proto__;
Run Code Online (Sandbox Code Playgroud)

放:

voices[index].SpeechSynthesisVoice.__proto__ = voicePrototype;
Run Code Online (Sandbox Code Playgroud)

并且,它已设置,如下面的屏幕截图所示:

在此输入图像描述

我也尝试过Object.setPrototypeOf()并得到了相同的结果。

现在,当我再次想要将此对象设置为 时speechSynthesis.voice,尽管我的原型匹配,但我仍然遇到相同的错误。

任何人都可以请建议,是否可以同样设置对象原型并使用它?提前致谢。

javascript speech-synthesis webspeech-api

5
推荐指数
0
解决办法
1346
查看次数

voiceSynthesis.getVoices(Web 语音 API)不显示某些本地安装的语音

我正在尝试使用 Web Speech API 来读取网页上的文本。但我发现我的Windows 10中安装的一些SAPI5语音不会显示在输出中speechSynthesis.getVoices(),包括Microsoft Eva MobileWindows 10上通过导入注册表文件“解锁”的语音。这些声音可以在本地 TTS 程序中正常工作Balabolka,但它们只是不会在浏览器中显示。浏览器是否有特定的规则来选择是否列出语音?

javascript text-to-speech speech-synthesis webspeech-api

5
推荐指数
1
解决办法
654
查看次数