我的主要目标是根据另一张声卡(均在同一台计算机上)上的音频分贝级别更改一张声卡上的音量。是否可以检测DB级别?PS:我是用C#写的 最佳答案 这是可能的,但并不容易。分贝声压级(SPL)将取决于您的扬声器、外部放大器和麦克风以及声卡。将您给声卡的数字(例如,在wav文件中)转换为dBSPL几乎完全是一个问题,您可以校准整个系统。问题是校准需要特殊设备,尤其是声级计;如果您没有其中之一,我不知道有什么方法可以估算您需要知道的值。(假设您所说的分贝是指声压级,通常以dB为单位测量。不过,dB只是对数标度的一种特殊表述,因此很多不同的东西
我写了一个小程序,它需要检测声级,如果声级高于设置中的设置,我就写它,我通过portaudio完成声音捕获,通过libvorbis压缩,但是程序的一部分没有完成,我坚持下去,我需要要检测原始pcm数据的声级,我对什么是pcm数据知之甚少,也不知道任何音频分析/处理算法,我们是否有现有的c/c++库可以做到这一点?,或者是一些简单的算法可以是否存在以c/c++实现? 最佳答案 这取决于您如何定义“声级”,这可以像检测峰值一样简单,也可以像遵循有关获取响度级别的行业标准/建议一样复杂。PCM数据通常是有符号值流:8位PCM为0x00..
有没有一种简单的方法可以读取iOS输出到扬声器/或正在播放的背景音乐的当前dB声级值? 最佳答案 没有。应用程序无法获取任何其他应用程序(例如背景音乐播放器)当前正在播放的声音的音频输出电平。 关于iphone-如何获取背景音乐的当前输出dB值以在iOS中显示声级计?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12661308/
我正在尝试在android中实现一个以dB为单位的声级计,但我还没有找到开始的方法。我已经查看了androidsAPI,但没有找到任何我认为合适的东西。谁能帮帮我? 最佳答案 这通常是不可能的,因为“dB”的不同含义之间存在混淆,而且您无法测量物理声压级(这通常是人们谈论“声级计”时的意思))无需校准设备。看我之前对类似问题的回答:AudiooutputlevelinaformthatcanbeconvertedtodecibelCalculateA-weighted(orBorC)SPLdecibeliOS
使用MediaRecorder我从设备的麦克风捕捉声音。从我得到的声音中,我只需要分析音量(声音响度),而无需将声音保存到文件中。两个问题:如何获取给定时刻的声音响度?如何在不将声音保存到文件的情况下进行分析?谢谢。 最佳答案 使用mRecorder.getMaxAmplitude();为了分析声音而不保存所有你需要的是使用mRecorder.setOutputFile("/dev/null");举个例子,希望对你有帮助publicclassSoundMeter{privateMediaRecordermRecorder=null;
使用MediaRecorder我从设备的麦克风捕捉声音。从我得到的声音中,我只需要分析音量(声音响度),而无需将声音保存到文件中。两个问题:如何获取给定时刻的声音响度?如何在不将声音保存到文件的情况下进行分析?谢谢。 最佳答案 使用mRecorder.getMaxAmplitude();为了分析声音而不保存所有你需要的是使用mRecorder.setOutputFile("/dev/null");举个例子,希望对你有帮助publicclassSoundMeter{privateMediaRecordermRecorder=null;
我是iOS世界的新手。我有个疑问。我想实现dBSPL计。我有两个按钮1.播放歌曲2.显示分贝值。当我点击播放歌曲按钮时,它正在播放歌曲。我的问题是在播放声音时我必须以分贝显示来自iPhone的声音值。我在谷歌搜索过。但我没有得到任何启动此应用程序的基本想法。请给我想法这样做。如果我的问题不清楚,请告诉我。 最佳答案 您没有指定用于播放的框架。但是假设你使用的是AVFoundation,你可以使用AVCaptureAudioChannelaveragePowerLevel或peakHoldLevel。您的问题的相关属性似乎是avera
我有2个信号,一个包含在扬声器上播放的音频数据。第二个包含同时记录扬声器的麦克风数据。到目前为止我做了什么:通过相关性在时域中对齐信号。对两个信号的重叠部分应用fft并将一个除以另一个以实现反卷积。我做错了什么,因为生成的音频数据没有用。这是我的代码://putbothsignalsinsplitcomplexvectorsvDSP_ctoz((DSPComplex*)file,2,&fftFileData,1,nOver2);vDSP_ctoz((DSPComplex*)mic,2,&fftMicData,1,nOver2);//fftofbothfileandmicdatavDSP
我正在尝试做一个语音捕捉应用程序,它只在有噪音时捕捉。所以我使用了MediaRecorder类中的getMaxAmplitude()方法。这是我的想法和工作:我启动了一个服务,它使用一个MediaRecorder对象来记录来自模拟器麦克风的声音,然后我有一个线程正在运行以检查该对象的getMaxAmplitude()值,如果它超过特定级别,我使用MediaRecorder中的新对象开始另一次录制一段时间,然后保存它。例如,如果在启动我的应用程序服务后出现“3种噪音”,它应该保存4个音频文件,包括用于监控振幅水平的主要文件。但我注意到一个问题,即android的麦克风一次只允许1个媒体录
我是Android的新手,希望编写一个应用程序来测量分贝声级。这个想法是,当声音达到一定水平时,用户会收到警报。而已。谁能帮我解决这个问题。我可以使用HTML5/Javascript执行此操作吗?任何帮助将不胜感激。 最佳答案 取自AndroidMediaPlayerDecibelReading对于基于原生android/java的MediaRecorder分贝计算:mRecorder=newMediaRecorder();mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC)