Hololens-Unity语音输入

作者: 树上的cat_ee3c | 来源:发表于2017-09-28 23:23 被阅读26次

语音输入是HoloLens三大基本输入方式之一。Unity上有三种形式在应用上添加语音输入,分别是:

1.使用KeywordRecognizer(关键字识别)

2.使用GrammarRecognizer(语法识别)

3.使用DictationRecognizer(听写识别)

注意:只有听写或短语识别可以立即操作。这意味着如果一个 GrammarRecognizer 或KeywordRecognize在运行,DictationRecognizer则不能运行,反之亦然。

声音设置

麦克风必须设置支持语音输入

1. 在Unity Editor,通过导航至播放器设置设置"Edit > Project Settings > Player" 界面

2. 点击"Windows Store"

3.  在"Publishing Settings > Capabilities" ,检查麦克风设置

关键字识别

命名空间:UnityEngine.Windows.Speech

类型:KeywordRecognizer,PhraseRecognizedEventArgs,SpeechError,SpeechSystemStatus

通过注册<关键词>来初始化KeywordRecognizer实例,同时注册语音命令事件来做后续处理。

添加一些存储识别和关键词到action dictionary:

添加关键词至字典。我们以"activate" 为例

创建关键字识别

注册OnPhraseRecognized事件

示例代码

最后,开始识别

语法识别

命名空间:UnityEngine.Windows.Speech

类型:GrammarRecognizer,PhraseRecognizedEventArgs,SpeechError,SpeechSystemStatus

语法识别同Windows Store应用类似,依赖于实现设定好的SRGS文件,文件中定义了一系列语法规则用于语音识别。详见:Create Grammars Using SRGS XML

在你创建好SRGS文件后,将它放进StreamingAessets文件夹

创建语法识别并把它传给你的SRGS文件

注册OnPhraseRecognized事件

最后,开始识别

听写识别

命名空间: UnityEngine.Windows.Speech

: DictationRecognizer, SpeechError, SpeechSystemStatus

听写特性用于将用户语音转为文字输入,同时支持内容推断和事件注册特性。Start()和Stop()方法用于启用和禁用听写功能,在听写结束后需要调用Dispose()方法来关闭听写页面。垃圾回收站会自动回收它的资源。

完整的使用方法如下:

创建如下DictationRecognizer,有以下四种

1. DictationResult

2. DictationComplete

3. DictationHypothesis

4. DictationError

听写结果(DictationResult)

用户暂停事件将被解除

首先订阅DictationHypothesis事件:

处理DictationHypothesis回调

听写假设(DictationHypothesis

首先订阅DictationHypothesis事件:

处理DictationHypothesis回调

听写完成(DictationComplete

当系统停止,事件将被解除,无论是stop()被启用,超时,或其他错误情况。

首先订阅DictationComplete事件:

处理 DictationComplete回调

听写错误(DictationError)

当出现错误时,事件将被解除

首先订阅 DictationError 事件:

处理DictationError回调

订阅和操作听写事件可以通过启用听写识别器接收事件。

如果你不需要听写识别,你需要在事件中注销听写识别。

提醒: 1.start()和stop()方法分别代表启用和禁用听写识别。

2.在听写结束后需要调用Dispose()方法来关闭听写页面

3.以下情况中,听写识别会自动触发超时行为:

1). 如果在听写开始后第一个5秒内没听到任何声音,将会超时

2). 如果识别到了一个结果但是之后20秒没听到任何声音,也会超时

同时使用以上识别

如果你想同时在应用程序上使用短语识别和听写识别,那么一定要在完全关闭当前语音识别行为后再开始另一个识别动作。如果有多个KeywordRecognizer在运行,你可以使用如下代码一次性关闭它们:

24.png(1.54 KB, 下载次数: 18)

下载附件

2016-6-28 12:10 上传

为了从先前状态恢复所有识别器,可以在听写识别完成后调用下面的代码:

你也可以重新开始一个 KeywordRecognizer,这将会重启PhraseRecognitionSystem以达到上面的效果。

相关文章

  • Hololens-Unity语音输入

    语音输入是HoloLens三大基本输入方式之一。Unity上有三种形式在应用上添加语音输入,分别是: 1.使用Ke...

  • 2017-09-25

    语音输入板

  • Try voice

    你好,我想要语音输入。

  • Hololens-Unity手势识别(转)

    手势识别是HoloLens交互的重要输入方式之一。HoloLens提供了底层访问和高水平手势识别,可以满足不同的手...

  • Hololens-Unity空间声音(转)

    本文主要讲述如何在Unity项目中使用空间声音。本文涵盖了所需的插件组件以及Unity声音组件和属性设置以实现空间...

  • Hololens-Unity空间映射(转)

    转自:http://dev.arinchina.com/177wz/ar9625/9625/1 命名空间:Unit...

  • 这些输入法,比你还了解你自己。

    1.讯飞输入法-语音输入更快 如果说讯飞的特色,想必是语音输入了。当我们用语音输入时,转换率是十分优秀的。如果你不...

  • 讯飞语音输入法试用报告

    一直想要寻找一款合适的语音输入法,之前使用的是搜狗的语音输入,转换速度慢,也尝试过有道云笔记里的语音输入方式,识别...

  • 写作的语音输入

    写作的语音输入 我发现,有很多文友是用语音输入法写作的,而且速度很快。曾经有一位文友告诉我,语音输入,1500个字...

  • 一个商机

    使用语音输入的时候,屏幕亮度很大,眼睛会有不适感,这是一个语音输入的痛点…

网友评论

    本文标题:Hololens-Unity语音输入

    本文链接:https://www.haomeiwen.com/subject/gahbextx.html