JavaScript的annyang语音识别 国外库 中文文档 js

5 篇文章 0 订阅
1 篇文章 0 订阅

原文档 :https://github.com/TalAter/annyang/blob/master/docs/README.md

项目地址:https://github.com/TalAter/annyang

这里介绍一个开源的JavaScript语言输入库,名叫annyang。

Github地址:https://github.com/TalAter/annyang

截至到2019年12月13日,这个github仓库已经有5.7k个Star了。

annyang实际上就是JavaScript脚本文件,使用起来非常方便。

使用方法:https://blog.csdn.net/i042416/article/details/81701596

下面是中文翻译文档

API参考

init(命令,[resetCommands = true])

用要识别的命令列表初始化annyang。

 

例子:

var commands = {'hello :name': helloFunction};
var commands2 = {'hi': helloFunction};

// initialize annyang, overwriting any previously added commands
annyang.init(commands, true);
// adds an additional command without removing the previous commands
annyang.init(commands2, false);

从v1.1.0开始,不再需要调用init()。只需在需要时启动start()监听,并在任意时间和任意次数添加addCommands()即可。

不推荐使用

详情看 Commands Object

参数:

  • 对象 命令 -annyang应该收听的命令
  • boolean [resetCommands = true] -初始化之前要删除所有命令吗?

开始([选项])

开始听。在先添加一些命令(不强制使用)后调用此方法是一个好的做法。

接收支持以下选项:

  • autoRestart (boolean)如果由于窗口冲突而关闭,annyang会重新启动
  • continuous (boolean)允许强制启用或禁用连续模式。annyang对此很在行,只有在知道自己该做什么的情况下才进行设置。
  • paused (boolean)以暂停模式启动annyang。

例子:

//开始收听,请勿自动重新启动
annyang.start({ autoRestart: false });

//开始收听,不要自动重启,在第一个短语
annyang.start({ autoRestart: false, continuous: false });

参数:

  • 对象 [选项] -可选选项。

abort()

停止收听,然后关闭麦克风。

或者,要仅在不停止SpeechRecognition引擎或关闭麦克风的情况下暂时暂停annyang对命令的响应,请改用pause()。

请参阅:pause()

暂停()

暂停聆听。annyang将停止响应命令(直到调用resume或start方法),而不会关闭浏览器的SpeechRecognition引擎或麦克风。

或者,要停止SpeechRecognition引擎并关闭麦克风,请改用abort()。

请参阅:abort()

恢复()

结果匹配时,继续侦听并恢复命令回调执行。如果语音识别被中止(停止),请启动它。

调试([newState = true])

打开调试消息到控制台的输出。丑陋,但超级好用!

参数:

  • 布尔值 [newState = true] -打开/关闭调试消息

setLanguage(语言)

设置用户将使用的语言。如果未调用此方法,则默认为“ en-US”。

另请:语言

参数:

  • 字符串 语言 -语言(语言环境)

addCommands(命令)

添加annyang将响应的命令。语法与init()类似,但不会删除现有命令。

例子:

var commands = {'hello :name': helloFunction, 'howdy': helloFunction};
var commands2 = {'hi': helloFunction};

annyang.addCommands(commands);
annyang.addCommands(commands2);

// annyang现在将监听所有三个命令

 

另外:命令对象

参数:

  • 对象 命令 -annyang应该收听的命令

removeCommands([commandsToRemove])

删除现有命令。用单个短语,短语数组或有条理地调用。不传递任何参数来删除所有命令。

例子:

var commands = {'hello': helloFunction, 'howdy': helloFunction, 'hi': helloFunction};

// Remove all existing commands
annyang.removeCommands();

// Add some commands
annyang.addCommands(commands);

// Don't respond to hello
annyang.removeCommands('hello');

// Don't respond to howdy or hi
annyang.removeCommands(['howdy', 'hi']);
 

参数:

  • 字符串|数组|未定义 [commandsToRemove] -删除命令

addCallback(type,callback,[context])

添加一个回调函数,以防发生以下事件之一:

  • start -浏览器的语音识别引擎开始收听后立即触发。

  • soundstart -一旦检测到任何声音(可能是语音)就会触发。

    每次语音识别启动时将触发一次。参见https://is.gd/annyang_sound_start

  • error -当浏览器的语音识别引擎返回错误时触发,此通用错误回调后将跟随更准确的错误回调(如果两个都定义,则两者都将触发)。

    将使用错误事件作为第一个参数来调用回调函数。

  • errorNetwork -由于网络错误导致语音识别失败时触发。

    将使用错误事件作为第一个参数来调用回调函数。

  • errorPermissionBlocked -当浏览器阻止使用语音识别的权限请求时触发。

    将使用错误事件作为第一个参数来调用回调函数。

  • errorPermissionDenied -当用户阻止使用语音识别的权限请求时触发。

    将使用错误事件作为第一个参数来调用回调函数。

  • end -当浏览器的语音识别引擎停止时触发。

  • result-一经发现语音便被解雇。此通用回调后将带有resultMatchresultNoMatch回调。

    将使用用户称为第一个参数的一系列可能短语来调用此事件的回调函数。

  • resultMatch -当annyang能够在用户所说的内容和注册的命令之间进行匹配时触发。

    此事件的回调函数将按以下顺序用三个参数调用:

    • 用户说的短语与命令匹配。
    • 匹配的命令。
    • 用户可能已经说过的一系列可能的替代短语。
  • resultNoMatch -当用户说的话与任何已注册的命令都不匹配时触发。

    此事件的回调函数将使用用户可能作为第一个参数说的一组可能的短语进行调用。

例子:

annyang.addCallback('error', function() {
  $('.myErrorText').text('There was an error!');
});

annyang.addCallback('resultMatch', function(userSaid, commandText, phrases) {
  console.log(userSaid); // sample output: 'hello'
  console.log(commandText); // sample output: 'hello (there)'
  console.log(phrases); // sample output: ['hello', 'halo', 'yellow', 'polo', 'hello kitty']
});

// pass local context to a global function called notConnected
annyang.addCallback('errorNetwork', notConnected, this);

 

参数:

  • 字符串 类型 -触发此回调的事件的名称
  • 函数 回调 -触发事件时要调用的函数
  • 对象 [context] -回调函数的可选上下文

removeCallback(type,callback)

从事件中删除回调。

  • 传递事件名称和回调命令以从该事件类型中删除该回调命令。
  • 仅传递事件名称即可从该事件类型中删除所有回调命令。
  • 传递未定义的事件名称和回调命令以从所有事件类型中删除该回调命令。
  • 不传递任何参数以从所有事件类型中删除所有回调命令。

例子:

annyang.addCallback('start', myFunction1);
annyang.addCallback('start', myFunction2);
annyang.addCallback('end', myFunction1);
annyang.addCallback('end', myFunction2);

// Remove all callbacks from all events:
annyang.removeCallback();

// Remove all callbacks attached to end event:
annyang.removeCallback('end');

// Remove myFunction2 from being called on start:
annyang.removeCallback('start', myFunction2);

// Remove myFunction1 from being called on all events:
annyang.removeCallback(undefined, myFunction1);

参数:

  • type要从中删除回调的事件类型的名称
  • callback删除的回调函数

返回:

  • 未定义

isListening()

如果当前启用语音识别,则返回true。如果关闭语音识别或annyang暂停,则返回false。

返回:

  • 布尔值true = SpeechRecognition已打开并且annyang正在收听

getSpeechRecognizer()

返回annyang使用的浏览器的SpeechRecognition对象的实例。如果您想直接访问浏览器的语音识别引擎,则很有用。

返回:

  • SpeechRecognition annyang当前使用的浏览器的Speech Recognizer

触发器(字符串|数组)

模拟语音被识别。这将触发与语音识别检测到语音时相同的事件和行为。

可以接受包含单个句子的字符串或包含多个要检查的句子的数组,直到其中一个与命令匹配为止(类似于解析语音识别替代方法的方式)

例子:

annyang.trigger('Time for some thrilling heroics');
annyang.trigger(
    ['Time for some thrilling heroics', 'Time for some thrilling aerobics']
  );

 

参数:

  • 字符串|数组句子一个句子作为字符串或可能的句子的字符串数组

返回:

  • 未定义

最好您得知道

命令对象

两者的init()和addCommands()方法接收commands对象。

annyang理解与命令named variablessplatsoptional words

  • 使用named variables在您的命令一个单词的参数。
  • 使用splats以捕获多字的文字在你的命令(贪婪)结束。
  • 使用optional words或短语将命令的一部分定义为可选。

例子:

<script>
var commands = {
  // annyang will capture anything after a splat (*) and pass it to the function.
  // e.g. saying "Show me Batman and Robin" will call showFlickr('Batman and Robin');
  'show me *tag': showFlickr,

  // A named variable is a one-word variable, that can fit anywhere in your command.
  // e.g. saying "calculate October stats" will call calculateStats('October');
  'calculate :month stats': calculateStats,

  // By defining a part of the following command as optional, annyang will respond
  // to both: "say hello to my little friend" as well as "say hello friend"
  'say hello (to my little) friend': greeting
};

var showFlickr = function(tag) {
  var url = 'http://api.flickr.com/services/rest/?tags='+tag;
  $.getJSON(url);
}

var calculateStats = function(month) {
  $('#stats').text('Statistics for '+month);
}

var greeting = function() {
  $('#greeting').text('Hello!');
}
</script>

 

在命令中使用正则表达式

对于高级命令,您可以传递正则表达式对象,而不是简单的字符串命令。

这是通过传递包含两个属性的对象来完成的:regexp和, callback而不是函数。

例子:

var calculateFunction = function(month) { console.log(month); }
var commands = {
  // This example will accept any word as the "month"
  'calculate :month stats': calculateFunction,
  // This example will only accept months which are at the start of a quarter
  'calculate :quarter stats': {'regexp': /^calculate (January|April|July|October) stats$/, 'callback': calculateFunction}
}

 

在Visual Studio Code (VSCode) 上集成语音转文字功能需要借助一些第三方插件和API支持。通常情况下,这涉及到语音识别技术,你可以通过以下步骤实现: 1. **安装插件**: - 使用VSCode的扩展市场搜索"语音转文本"插件,如`LanguageTool`、`Text-to-Speech`等,它们可能包含了基础的语音识别功能,但也可能需要额外的支持。 2. **配置语音识别**: - 如果插件本身不包含语音识别,你需要找到一款适合的语言识别,例如Python的`SpeechRecognition`或JavaScript的`annyang`(用于浏览器环境),并在项目中安装并设置好。 3. **编写转换代码**: - 创建一个脚本或任务,使用选择的将录音文件或实时音频流转化为文字。这通常涉及处理音频文件,发送请求到语音识别API(如Google Speech-to-Text API)或本地语音识别服务。 4. **集成显示**: - 将识别出的文字结果显示在VSCode的工作区里,可以使用内置的输出窗口或者创建一个简单的Markdown或HTML元素显示文本。 5. **监听输入**: - 对于实时语音输入,你可能需要使用Node.js的`annyang`配合,它允许你在VSCode内监听语音命令。 ```javascript // 示例(Node.js with anyang) const an = require('annyang'); annyang.start(); annyang.addCommand('transcribe', function() { // 使用语音识别API获取文字 const transcript = recognizeAudioFromMicrophone(); vscode.window.showInformationMessage(transcript); }); function recognizeAudioFromMicrophone() { // 实现音频转文字的具体逻辑 } annyang.run(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值