Android中的语音匹配

我们有什么方法可以在Android中进行语音匹配吗? 采取以下方案。

  1. 用户“A”在应用程序中说话,并通过应用程序将其记录在手机中。
  2. 用户“B”在应用程序中说话,并通过应用程序将其记录在手机中。
  3. 用户“C”在应用程序中说话,并通过应用程序将其记录在手机中。
  4. 在所有这些录音之后,用户“A”来到应用程序并与之交谈。 由于他的声音已被录制,app确定这是用户“A”。

或者像这样的东西……

  1. 用户“A”在应用程序中使用“House”这个词,并通过应用程序将其记录在手机中。
  2. 用户“B”在应用程序中说“House”,并通过应用程序将其记录在手机中。
  3. 用户“C”在应用程序中说“House”,并通过应用程序将其记录在手机中。
  4. 在所有这些录音之后,用户“A”来到应用程序并说出“House”这个词。 由于他的声音已被录制,app确定这是用户“A”。

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

您可能想要检查在Java中进行文本独立说话人识别的Recognito

这是一个在Apache 2.0下获得许可的FOSS lib

https://github.com/amaurycrickx/recognito

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

它对Oracle的javax.sound有轻微的依赖关系来处理文件,但它应该直接从主要的Recognito类中删除这个依赖项(一些丢弃的方法:在params中查找“file”并点击del)

我不知道任何其他FOSS替代品,如果没有修改将兼容Android

有很多javadoc,代码应该是直截了当的。

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

请注意,单个单词不足以提取良好的声乐效果并在之后识别用户

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

lib与文本无关,但如果您需要保持录音短,则有助于使用相同的短语。 如果你想让它真正独立于文本(用户说什么并得到认可),你需要更长的声音样本。

HTH