如何识别用户何时开始和停止在 android 中说话? (Android 中的语音识别)

2024-01-26

我已经进行了大量的研发并使用了大量的资源来解决我的问题,但我未能找到任何适当的解决方案。

我已经开发了一个应用程序,现在我想添加基于语音的功能 to it.

所需的功能是

1) when USER开始说话,应该录制音频/视频 and

2)当用户停止说话,它应该播放录制的音频/视频 .

Note:这里的视频是指用户在该时间段内在应用程序中执行的任何操作。例如,点击按钮或某种动画等。

我不想使用谷歌的语音识别器默认情况下在 Android 中可用,因为它需要互联网,但我的应用程序离线运行。此外,我还了解到卡内基梅隆大学狮身人面像 http://cmusphinx.sourceforge.net/。但根据我的要求,这没有帮助。

编辑:-另外,我想补充一点,我已经使用“开始和停止”按钮实现了这一点,但我不想使用这些按钮。

如果有人有任何想法或建议,请告诉我。


最简单、最常用的方法是计算过零的数量 http://en.wikipedia.org/wiki/Zero-crossing_rate在音频中(即当符号从正变为负时)。

如果该值太高,则声音不太可能是语音。如果它太低,那么同样,它不太可能是语音。

将其与简单的能量水平(音频的响度)相结合,您就得到了一个非常强大的解决方案。

如果您需要更准确的系统,那么它就会变得更加复杂。一种方法是提取音频特征(MFCC http://en.wikipedia.org/wiki/Mel-frequency_cepstrum例如)来自“训练数据”,用类似的东西对它们进行建模GMM http://en.wikipedia.org/wiki/Mixture_model然后根据 GMM 测试从现场音频中提取的特征。通过这种方式,您可以对给定音频帧是语音而不是非语音的可能性进行建模。然而,这不是一个简单的过程。

我强烈建议采用过零的方式,因为它很容易实现,并且 99% 的情况下都可以正常工作:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何识别用户何时开始和停止在 android 中说话? (Android 中的语音识别) 的相关文章

  • 谷歌地图不显示 Android

    我想在我的应用程序中实现谷歌地图 我添加了谷歌地图活动并创建了一个密钥 我没有更改其他地方的代码中的任何内容 我应该工作 但没有 地图活动 public class MapsActivity extends FragmentActivity
  • 如何正确显示AChartEngine条形图

    我在用图表引擎 1 0 1 最新 并想演示一个条形图 这就是我要的 我想要的图表 到目前为止我所取得的成就 1 1 view 缩小视图 问题 图表的左右部分在 1 1 视图中丢失 酒吧之间的距离是如此之远 我需要减少它 该栏未正确位于文本标
  • 如何减少Android中CheckBox的宽度和高度

    谁能告诉我如何减少 CheckBox 的宽度和高度 以便在 Android 中显示非常小的 CheckBox 提前致谢 只需像使用普通按钮一样使用 setWidth w 和 setHeight h 函数即可
  • 进度条中形状的填充

    我正在使用 xml 文件来定义进度条 我在背景形状上定义了填充 但这个设置有时会正确显示 有时则不能 因此 如果我启动内部带有进度条的应用程序或活动 则会正确显示带有背景和 填充 进度的进度条 然后我关闭我的应用程序并再次启动它 并且 进度
  • 如何在不清除和闪烁地图的情况下刷新谷歌地图上的标记位置?

    是否可以创建无需闪烁 清除整个地图即可更新的 Google 地图 V2 标记 目前我必须清除地图然后添加标记 googleMap clear googleMap addMarker new MarkerOptions position en
  • 类 X 不是抽象的,并且没有实现 android.os.Parcelable 中定义的 fun writeToParcel()

    在我的 Android 应用程序中 我想添加一个 Bundle 其中包括Place下面描述我的意图的对象 由于 Serialized 速度慢且不推荐 所以我更喜欢 Parcelable 虽然我使用 Kotlin 1 3 31 但在分割某些数
  • 如何安全地更改Android Studio中的项目名称?

    我想更改Android Studio中的项目名称 我在 Stackoverflow 上找到了一些答案 但它对我不起作用 请给我推荐一些合适的解决方案 目前我正在使用 Android Studio 2 3 永远感谢 您需要执行几个步骤 首先转
  • android中viewpager中的多个视频播放器

    我想在 viewpager 中的不同片段上播放视频 我为每个片段使用多个媒体播放器和表面视图 当我向左或向右滑动时 我也想暂停和开始视频 滑动到下一个视频完全没有问题 但是当我滑动到上一个视频 已经在播放 时 表面视图重叠 同时 我可以毫无
  • 找不到具有不同构建变量的包名称“....”的匹配客户端

    我想实现推送通知 我添加到项目级别 dependencies classpath com android tools build gradle 2 2 2 classpath com google gms google services 3
  • 在主线程中处理某些代码时如何显示进度对话框(在单独的线程中?)

    我需要执行以下操作 当应用程序启动时 它会运行一项活动 splashActivity 该活动尝试创建一个 DBHelper SQLiteDatabase 实例 该实例在创建时检查数据库是否存在 如果不存在则创建一个 在此数据库创建过程中 我
  • 使用 JWT 创建 Firebase 自定义身份验证令牌

    为了创建 firebase 自定义身份验证令牌 我使用第三方 JWT 库 https github com jwtk jjwt https github com jwtk jjwt 在此库中 有一个选项可以添加 firebase 自定义令牌
  • android,如何重命名文件?

    在我的应用程序中 我需要录制视频 在开始录制之前 我为其指定名称和目录 录制完成后 用户可以重命名其文件 我写了以下代码 但似乎不起作用 当用户输入文件名并单击按钮时 我将执行以下操作 private void setFileName St
  • 获取当前 GPS 时出现 NullPointerException

    我有一个测试屏幕 其中有一个按钮 按下它会调用该服务 我正在尝试实现一种方法来获取当前用户的当前 GPS 位置 但在尝试调用时它崩溃了 谁能告诉我问题是什么吗 package com example whereyouapp import j
  • 在不同的活动上显示 OnItemClickListener 的结果

    我使用 OnItemClickListener 从列表视图中选择一个项目 如下所示 listView setTextFilterEnabled true final TextView disp TextView findViewById R
  • Android WebView setCertificate 问题 SSL 问题

    我看过很多关于 SSL 错误的帖子和信息 并且我自己也偶然发现了一个 我尝试使用 GlobalSign CA BE 证书通过 Android WebView 访问网页 但收到不受信任的错误 对于大多数手机来说 处理这个问题效果很好 只需告诉
  • 返回 RxJava 的 Completable 的方法的命名约定

    我有一个带有视图类的 Android 应用程序 Fragment Activity 观察其ViewModel The ViewModel公开方法 例如getUserName返回Observable
  • 在 Android 应用程序中使用传单来显示在线地图

    是否有任何示例项目展示如何正确使用传单在 Android 应用程序中显示在线地图 因为我尝试了很多示例 但每次我的应用程序中都有一个空的网络视图 这是我的代码 private WebView mWebView Override protec
  • 在大画布上滚动

    我需要一些帮助来了解滚动绘制到 Android 画布上的项目的基础知识 假设我想创建一个时间线 其中 0 处的时间是可视化的顶部 并且随着时间的增加 时间线继续呈现在上一个点下方 如果我想在 Android 上渲染它 我知道我可以通过重写
  • 无法放置双重 SharedPreferences

    出现错误 这种类型的共享首选项编辑器的 put double 方法未定义 Eclipse 提供了一种快速修复方法 将强制类型转换添加到编辑器 但是当我这样做时 它仍然给出错误 为什么我不能 put double 代码 Override pr
  • 与桌面浏览器相比,移动浏览器有多强大? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 从整数的商中获取双精度值

    int velMperMin 667 int distM 70 double movT distM velMperMin 60 movtT必须等于6 30 但它是0 您需要将除法的操作数之一转换为双精度值 像这样 double movT d
  • 使用 UMAP 和 HDBScan 进行集群

    我有大量的文本数据 大约有 5000 人输入 我使用 Doc2vec 为每个人分配了一个向量 使用 UMAP 缩减为二维 并使用 HDBSCAN 突出显示其中包含的组 目的是突出具有相似主题相似性的组 这导致了如下所示的散点图 这看起来可以
  • Gitlab CI如何部署最新到特定目录

    我在 Gitlab 中有两个项目 其中一个是另一个项目 我们称这个存储库为 main 的子模块 我们称其为 前端模板 我已经为 frontend templates 存储库设置了 Gitlab CI 构建 问题是我不需要测试或构建 我只需要
  • 将 UIView 中的标签居中

    将标签居中的最佳方法是什么UIView 如果你做了类似的事情 UILabel myLabel UILabel alloc initWithFrame CGRectMake view frame origin x 2 view frame o
  • Flask 只能看到通过curl 发送的多个参数中的第一个参数

    我正在使用curl 向需要多个查询参数的Flask 路由发出请求 但是 日志仅显示 url 中的第一个参数 Flask 看不到第二个参数 出了什么问题 app route path methods GET def foo print req
  • 从 .NET 3.5 WCF Web 服务 (REST) 返回 JSON 和 XML 格式

    我有一个返回 XML 响应的现有 Web 服务 我想添加一些返回 JSON 的新方法 我是否必须创建一个以 JSON 形式返回的单独 Web 服务 还是可以混合使用 如果我使用 ResponseFormat WebMessageFormat
  • 设置 分钟间隔 时 UIDatePicker 的奇怪行为

    以下代码在 iOS 4 3 下显示奇怪的行为 也许其他版本也是如此 在这个例子中 一个UIDatePicker其日期设置为4 Aug 2011 2 31 PM被展示 这UILabel以下UIDatePicker显示日期以供参考 他们三个UI
  • 重写派生类中的成员字段

    我有下面的代码片段 include
  • 如何将 pygame 应用程序转换为 iOS 应用程序

    我使用 pygame 在 python 中编写了一个非常小的未完成的游戏 有没有一种简单的方法可以将其转换为我可以在 iPhone 上使用和测试的应用程序 而无需在 kivvy 等中重写整个代码 没有简单的方法 不可能转换代码 但对于一款简
  • Spark数据集/数据帧连接NULL倾斜键

    使用 Spark Dataset DataFrame 连接时 我面临长时间运行并因 OOM 作业而失败 这是输入 约 10 个不同大小的数据集 大部分都很大 gt 1 TB 所有左连接到一个基础数据集 一些连接键是null 经过一些分析 我
  • 动态大小 UICollectionView 单元格

    1 我怎样才能实现如图所示UICollectionView 2 我已经尝试过 CGSize collectionView UICollectionView collectionView layout UICollectionViewLayo
  • Magento如何缓存productCollection

    我注意到我的主页需要很长时间才能加载 根据 site24x7 com 事实上超过 6 秒 所以我一直在关闭元素以尝试确定原因是什么 这取决于我制作的 2 个产品集合文件展示新产品和畅销产品 当我从主页中删除这些内容后 页面加载时间不到 0
  • Primefaces 数据表冻结列未对齐

    我们有一个数据表 如图所示 有 3 个冻结列 其余可滚动 冻结的列未对齐 如图所示 如果删除冻结列属性 则表看起来正常 任何解决问题的建议 我过去在冻结数据表方面遇到过类似的问题 并在不同的帖子中使用许多不同的脚本 我发现下面的脚本适用于所
  • 当你克隆 `&str` 时会发生什么?

    当你克隆一个时会发生什么 str 是克隆的吗 str指向与克隆者相同的地方 str或者是什么 这有记录在任何地方吗 克隆一个 str与克隆任何相同 T 它只是复制引用 从字面上看 它只是返回自身 https doc rust lang or
  • .FillRectangle 不绘制任何内容

    我无法弄清楚为什么 FillRectangle 不适合我 此外 由于它没有抛出任何异常 我不知道为什么会这样 所以我在这里需要一些帮助 受影响的代码部分是这样的 try using FileStream fileStream File Op
  • 直接从 JavaScript 访问 GET?

    我想我可以使用 PHP 来访问 GET来自 JavaScript 的变量 但也许它更简单 有没有办法直接用JS实现呢 Look at window location search 它将包含一个像这样的字符串 foo 1 bar 2 要将其转
  • 核心数据使用一次后<故障>

    我搜索了几个小时但没有找到任何东西 我处于有线状态核心数据 获取对象的方法 func fetchAllCoreData gt NSArray let moc DataController managedObjectContext let f
  • 如何在android中的gridview适配器的getView()内膨胀另一个布局?

    I want to create weekly calendar view and inside each grid item each day there are may be several activities Out of this
  • 关闭时控制台关闭过程[重复]

    这个问题在这里已经有答案了 我将一个DLL注入到一个进程中 在该进程的入口点我生成一个新线程并分配一个控制台 我将所有std重定向到控制台 当我关闭控制台窗口时整个进程关闭 有没有办法这样它就不会关闭进程 这是我的代码 入口点 pragma
  • 如何识别用户何时开始和停止在 android 中说话? (Android 中的语音识别)

    我已经进行了大量的研发并使用了大量的资源来解决我的问题 但我未能找到任何适当的解决方案 我已经开发了一个应用程序 现在我想添加基于语音的功能 to it 所需的功能是 1 when USER开始说话 应该录制音频 视频 and 2 当用户停