草庐IT

android - Android ICS 上的 App 内语音触发控制和离线语音识别

coder 2023-12-14 原文

我目前正在开发跨平台应用程序,它应该可以在 Google GLASS (Android 4.0.4)、智能手机(Android 4.0.4 或更新版本)和其他可穿戴设备上运行。至少会是 ICS – Ice Cream Sandwich 版本。
这个应用程序为我提供了事件驱动的不同 View ,由用户或系统(网络 - 事件)触发。
对于用户的控制,我想实现语音识别,它只需要识别数字或至少单个数字以及向前和向后的命令。重要的是它也可以离线工作,它应该在应用程序运行时在后台工作并且不应该覆盖用户界面。
相关工作:
SpeechRecognizer 似乎只有 jellybean 才有离线功能,(还没有找到在 Android 4.0.4 上使用它的方法)。
实现自定义 IME 和使用 VoiceTyping 在我看来是非常昂贵和肮脏的。 (就像 Utter!,顺便说一句。真的很棒!)
首次尝试使用 pocketsphinx 尚未成功。

最佳答案

Jelly Bean 的离线语音功能由 Google 搜索应用程序在内部处理。 RecognizerIntent 都没有变化或 SpeechRecognizer API。

这对于您想要实现的目标来说并不理想,因为依赖于非跨平台的闭源应用程序会在工作中引发麻烦……无论如何,一个简单的 offline = true 参数无处可见,您最终将不得不强制执行此行为。 我顺便申请了这个参数!

Google 使用专用处理器内核处理唤醒短语,但看起来 unlikely that the manufacturers intend to expose this functionality to anyone other than OEMs .

剩下其他具有 RESTful 服务的替代识别提供程序,例如 iSpeech , AT&TNuance ,但同样,如果您采用这种方法,您将耗尽电池并使用大量数据。更不用说在Android平台上发生的音频冲突。

最后,您得到 Sphinx .目前,我认为这是降低资源使用率的唯一可行解决方案,但它并没有解决音频冲突问题。很长一段时间以来,我一直致力于让它在我的应用程序中运行,但我仍然存在误报的重大问题,这些问题阻止了我将其纳入生产。

在谷歌、处理器制造商和原始设备制造商研究出如何提供此类功能之前,这可能是您唯一的选择,而无需安装在设备上的每个应用程序都想参与其中,这是不可避免的......

我不确定这个回复是否真的提供和回答了,更排除了一些!

祝你好运

编辑:在可穿戴设备的环境中,此类产品将可以访问专用内核 - 至少他们需要确保他们这样做并使用具有此类功能的处理器。从我与开发此类技术的公司的互动来看,他们经常忽视这一点或没有意识到它的必要性。

关于android - Android ICS 上的 App 内语音触发控制和离线语音识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110975/

有关android - Android ICS 上的 App 内语音触发控制和离线语音识别的更多相关文章

  1. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  2. Ruby Readline 在向上箭头上使控制台崩溃 - 2

    当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby​​安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少

  3. ruby-on-rails - 带 Spring 锁的 Rails 4 控制台 - 2

    我正在使用Ruby2.1.1和Rails4.1.0.rc1。当执行railsc时,它被锁定了。使用Ctrl-C停止,我得到以下错误日志:~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`gets':Interruptfrom~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`verify_server_version'from~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.

  4. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  5. ruby - 触发器 ruby​​ 中 3 点范围运算符和 2 点范围运算符的区别 - 2

    请帮助我理解范围运算符...和..之间的区别,作为Ruby中使用的“触发器”。这是PragmaticProgrammersguidetoRuby中的一个示例:a=(11..20).collect{|i|(i%4==0)..(i%3==0)?i:nil}返回:[nil,12,nil,nil,nil,16,17,18,nil,20]还有:a=(11..20).collect{|i|(i%4==0)...(i%3==0)?i:nil}返回:[nil,12,13,14,15,16,17,18,nil,20] 最佳答案 触发器(又名f/f)是

  6. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  7. ruby-on-rails - Rails - 乐观锁定总是触发 StaleObjectError 异常 - 2

    我正在学习Rails,并阅读了关于乐观锁的内容。我已将类型为integer的lock_version列添加到我的articles表中。但现在每当我第一次尝试更新记录时,我都会收到StaleObjectError异常。这是我的迁移:classAddLockVersionToArticle当我尝试通过Rails控制台更新文章时:article=Article.first=>#我这样做:article.title="newtitle"article.save我明白了:(0.3ms)begintransaction(0.3ms)UPDATE"articles"SET"title"='dwdwd

  8. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  9. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  10. ruby-on-rails - 如何在 Rails Controller Action 上触发 Facebook 像素 - 2

    我有一个ruby​​onrails应用程序。我按照facebook的说明添加了一个像素。但是,要跟踪转化,Facebook要求您将页面置于达到预期结果时出现的转化中。即,如果我想显示客户已注册,我会将您注册后转到的页面作为成功对象进行跟踪。我的问题是,当客户注册时,在我的应用程序中没有登陆页面。该应用程序将用户带回主页。它在主页上显示了一条消息,所以我想看看是否有一种方法可以跟踪来自Controller操作而不是实际页面的转化。我需要计数的Action没有页面,它们是ControllerAction。是否有任何人都知道的关于如何执行此操作的gem、文档或最佳实践?这是进入布局文件的像素

随机推荐