java - Android中的语音匹配

标签 java android eclipse voice-recognition voice

<分区>

有什么方法可以在 Android 中进行语音匹配吗?以下面的场景为例。

  1. 用户“A”在应用中说了些什么,并通过应用将其记录在手机中。
  2. 用户“B”在应用中说了些什么,并通过应用将其记录在手机中。
  3. 用户“C”在应用中说了些什么,并通过应用将其记录在手机中。
  4. 在完成所有这些录音后,用户“A”来到并与该应用对话。由于他的声音已经被录制,应用程序识别出这是用户“A”。

或者其他类似的东西..

  1. 用户“A”在应用中说出单词“House”并通过应用将其记录在手机中。
  2. 用户“B”在应用中说出单词“House”,并通过应用将其记录在手机中。
  3. 用户“C”在应用中说出单词“House”并通过应用将其记录在手机中。
  4. 完成所有这些录音后,用户“A”过来对着应用说出“House”这个词。由于他的声音已经被录制,应用程序识别出这是用户“A”。

这在 Android 中可行吗?哪种方法可行?我还没有看到任何为此内置的库,但是有什么办法吗?

最佳答案

您可能需要检查 Recognito,它在 Java 中执行独立于文本的说话人识别

这是一个在 Apache 2.0 下许可的 FOSS 库

https://github.com/amaurycrickx/recognito

免责声明:我是作者 :-)

它对 Oracle 的 javax.sound 有轻微的文件处理依赖性,但从主 Recognito 类中删除这种依赖性应该很简单(一些要丢弃的方法:在参数中查找"file"并点击 del)

我不知道有任何其他 FOSS 替代品无需修改即可与 Android 兼容

有很多 javadoc,代码应该很简单。

你会想知道的一件事是如何创建值介于 -1.0 和 1.0 之间的 double[] 首先,您可能需要查看 FileHelper 类,它可以处理 16 位 PCM 编码文件。

请注意,单个单词不足以提取良好的声纹并随后识别用户

对于这个过程,我会说使用重复 3 次的短语来构建平均声纹。在识别时使用相同的短语。

该库与文本无关,但如果您需要保持录音简短,使用相同的短语会有所帮助。如果您希望它真正独立于文本(用户说出任何内容并得到识别),您将需要更长的声音样本。

HTH

关于java - Android中的语音匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22443124/

相关文章:

java - Java 中的正则表达式拆分 XML

php - 是否可以使用 PhoneGap 或 Appcelerator 创建基于 php 的 iphone/android 应用程序?

c++ - 使用 Eclipse CDT 进行 Pintool 开发

java - eclipse `allow output folders for source folders`

java - 是否允许使用不同微服务中的相同表?

java - 返回二维数组 java.lang.Object 中任意对象的索引。

Android:在没有外部存储权限的情况下读取文件

Android Studio 2.3,无法构建 gradle。错误 304

java - 更新 Java 中断 Eclipse 运行

java - 在 JavaMe(Midlet 或 JAD)中调试