问候,
我正在尝试用Python编写一个程序,每次在麦克风上点击时都会打印一个字符串.当我说'轻拍'时,我的意思是一声巨响或者类似的东西.
我在SO搜索并发现这篇文章:识别音频的音调
我认为PyAudio库可以满足我的需求,但我不太确定如何让我的程序等待音频信号(实时麦克风监控),当我得到一个如何处理它时(我是否需要使用傅里叶变换它是在上面的帖子中指示的)?
提前感谢您提供给我的任何帮助.
我最近升级到了Swift 5,Xcode版本10.2(10E125),并且在解决了正在进行的应用程序中的一些编译问题后,看到了这个新的,从未见过的请求。我无法通过直接搜索在我的项目中找到任何证据,也没有在线搜索结果。项目中的吊舱也没有任何回报。
这让我感到担心,想知道是否有人对此有任何信息。
我正在尝试使用Snow Leopard上的Java Sound录制/处理来自三个usb麦克风的一些音频(但如果修复了某些内容,可以切换到Windows).问题是,当我尝试使用与usb麦克风相对应的混音器时,Java Sound告诉我该行不受支持.具体来说,它说...
可用的搅拌机:
Java声音音频引擎
USBMIC Serial#041270067
内置输入内置麦克风
Soundflower(2ch)
Soundflower(16ch)
线程"AWT-EventQueue-0"中的异常java.lang.IllegalArgumentException:Line unsupported:interface TargetDataLine支持格式PCM_SIGNED 96000.0 Hz,8位,立体声,2字节/帧,
...当我要求它选择USBMIC调音台时:
Mixer mixer = AudioSystem.
getMixer(mixerInfo[1]);
Run Code Online (Sandbox Code Playgroud)
我已经尝试将音频格式与麦克风(16位,44100Hz,立体声)的确切规格相匹配,但没有任何区别.
问题出在这里:
final TargetDataLine line = (TargetDataLine)
mixer.getLine(info);
Run Code Online (Sandbox Code Playgroud)
似乎混音器和TargetDataLine彼此不喜欢.有没有办法让这两个人"匹配"并相处?
我正在使用的麦克风确实有点奇怪.它们被用于名为SingStar的卡拉OK视频游戏中.麦克风本身具有标准的单声道输入连接器,插入一个小集线器(两个到集线器),将它们转换为单个公头usb连接器.但是,除了陌生之外,它们似乎与Audacity一起作为单独的频道完美地工作,所以用它们进行多声道录音显然是可能的,也许不是用Java.
我还考虑使用像Soundflower这样的程序,在不同程序之间共享音频.但是,我不确定这是否会起作用,因为我无法看到如何将USB麦克风输入到Soundflower,然后将它们传输到Java中.一个快速的实验告诉我,我可以从麦克风中录制Audacity中的音频,通过Soundflower将其输出,然后在我的Java程序中处理.不过,我想要做的就是让它全部用Java实现.
有人熟悉这类问题吗?
是否可以使用客户端JavaScript从浏览器访问麦克风(内置或辅助)?
理想情况下,它会将录制的音频存储在浏览器中.谢谢!
是否可以通过代码禁用Android(特别是1.5)麦克风的噪音消除功能?
我想创建一个愚蠢的MicrophoneApp来记录所有背景噪音,但我相信麦克风的噪音消除正在阻碍.我知道你可以做到这一点,如果你root手机和编辑设置(即本文),但我想在没有 root电话的情况下做到这一点.
我一直试图使用Android AudioManager.setMicrophoneMute()
而没有太大的成功.也就是说,无论我做什么,它都会拒绝将麦克风静音.
我在网上搜索了一些线索,我发现有几个参考报告了类似的经历:
这引出了一个问题:是否AudioManager.setMicrophoneMute()
有效?它只是一个存根方法,等待在未来的Android版本中实现吗?如果没有,它是如何工作的?我需要做些什么才能让它发挥作用?有什么条件让它的名字意味着它起作用?
编辑:我注意到这个方法的文档说:
此方法仅应由替换平台范围的音频设置管理或主要电话应用程序的应用程序使用.
这是什么意思?为什么我要替换平台范围的管理?我真的需要这样做吗?如果是这样,我该怎么做?
编辑:下面的答案是伟大的,但我仍然不明白:
请解释.谢谢.
我已经阅读了Sound API for Java几天了,我无法理解它.我是一个不错的程序员,我只是很难理解API.
我一直试图从麦克风中捕获音频并实时显示波形图.
我在捕获音频方面遇到了麻烦,他们在教程中说这样做,但我似乎无法让它工作.
任何建议和帮助将不胜感激,逐行回答将是理想的.
谢谢,麻烦您了.
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.TargetDataLine;
public class FindLine {
public static void main (String[] args){
AudioFormat format = new AudioFormat(22000,16,2,true,true);
TargetDataLine line;
DataLine.Info info = new DataLine.Info(TargetDataLine.class,
format); // format is an AudioFormat object
if (!AudioSystem.isLineSupported(info)) {
// Handle the error ...
}
// Obtain and open the line.
try {
line = (TargetDataLine) AudioSystem.getLine(info);
line.open(format);
} catch (LineUnavailableException ex) {
// Handle the error ...
} …
Run Code Online (Sandbox Code Playgroud) 我要求允许用户使用他们的麦克风录制音频文件,但它必须在没有闪存的情况下工作,因为它需要在iOS(移动版Safari),Android浏览器或Chrome以及PC/Mac上的现代浏览器上运行.
是否有一个干净,简单的HTML5方法来录制音频和发布到服务器?我找不到任何东西.
随着iOS 7的推出,应用程序必须在想要录制音频时请求麦克风访问.
如何检查应用程序是否可以访问麦克风?
在iOS 8 SDK中我可以使用AVAudioSessionRecordPermission
枚举,但如何在iOS 7中检查?
信息:
我不想请求权限,我只想检查应用是否可以访问麦克风.(如位置访问权限):
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)