从浏览器中的麦克风获取音频输入并提取特征

Posted

技术标签:

【中文标题】从浏览器中的麦克风获取音频输入并提取特征【英文标题】:Taking audio input from microphone in browser and extracting features 【发布时间】:2017-02-02 17:28:45 【问题描述】:

在浏览器中从麦克风捕获原始音频输入并从中提取特征的最佳库编程语言是什么?

我知道我可以在 javascript 中使用 getUserMedia() 来捕获音频,但它是否可以使用 JavaScript 轻松处理该音频,或者我应该换个方向?

【问题讨论】:

能否请您多谈谈您想对录制的音频做什么? 答案是,“是的”,使用音频很容易。也许您可以具体告诉我们您想做什么,以便我们提供更多详细信息 有许多不同的 API 可用,它们有很多 特性。但由于您没有告诉我们有哪些功能,我们无法将您带到任何地方。 easy 也是一个基于意见的词。 【参考方案1】:

是的,有!

最容易使用的是Microphone.js

USAGE

要实例化主 Microphone 对象,请使用 create 函数:
require(['microphone'], function(microphone)
 var Microphone = microphone.create();
 );

要激活语音处理,请使用 on 功能: Microphone.on(); mic.js 的主要用途是通过 addCommand 函数。这需要两个主要参数:模式,假定为正则表达式数组,以及回调,如果指定的任何模式与语音输入匹配,则将运行的代码:

Microphone.addCommand(
    patterns: [new RegExp('dog', 'i')],
    callback: function() 
      alert("no, cats!");
    
);

回调还接收两个参数:当前 Microphone 实例,允许用户检查 currentTranscript 和其他相关信息;和匹配的 CommandString,它公开匹配的字符串,以及 args,它是匹配字符串后面的单词数组。这使您可以执行以下操作:

Microphone.addCommand(
    patterns: [new RegExp("display", "i")],
    callback: function(mic, command) 
      $("#" + command.args[0]).show();
    
);

因此,如果您说“显示 foo”,则会显示 id 为 foo 的 DOM 元素(当然,假设您使用的是 jQuery)。

还有Web Speech API,更复杂但也有更多功能。

在我看来,getUserMedia() 方法仍然是最好的方法,请随意选择!

【讨论】:

以上是关于从浏览器中的麦克风获取音频输入并提取特征的主要内容,如果未能解决你的问题,请参考以下文章

EZAudio 中的音频输入源

如何从 Macbook 麦克风获取音频数据?

Laravel 中的麦克风输入

如何从麦克风输入中获取音量

适用于 macOS 的 Xcode 应用程序。这就是我设置从 USB 麦克风输入获取音频的方式。一年前工作,现在不行。为啥

如何处理音频字节以从实时音频流中提取 MFCC?