Android中的语音匹配
我们有什么方法可以在Android中进行语音匹配吗? 采取以下方案。
- 用户“A”在应用程序中说话,并通过应用程序将其记录在手机中。
- 用户“B”在应用程序中说话,并通过应用程序将其记录在手机中。
- 用户“C”在应用程序中说话,并通过应用程序将其记录在手机中。
- 在所有这些录音之后,用户“A”来到应用程序并与之交谈。 由于他的声音已被录制,app确定这是用户“A”。
或者像这样的东西……
- 用户“A”在应用程序中使用“House”这个词,并通过应用程序将其记录在手机中。
- 用户“B”在应用程序中说“House”,并通过应用程序将其记录在手机中。
- 用户“C”在应用程序中说“House”,并通过应用程序将其记录在手机中。
- 在所有这些录音之后,用户“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