Questions tagged «audio»

音频,或者就信号处理而言,音频信号是声音的模拟或数字表示,通常是电压。


3
告诉别人我如何听到自己的声音
太..我一直在想这个东西。我们都知道,我们的声音与自己听到的声音有所不同。通过记录自己并听取别人的声音很容易发现别人。 但是反过来呢? 有没有一种方法可以改变我们的声音,使他人在感知自己的声音时可以听到我们的声音?我发现这是一个非常有趣的问题。遗憾的是,经过几个Google搜索后,我在网上找不到任何内容。没有人考虑过这个,还是因为某种我看不见的原因而不可能呢? 任何线索,将不胜感激:)。

4
用于语音活动检测的库(非语音识别)
在回答我之前的问题时,我想知道是否存在任何语音检测库。通过语音检测,我的意思是传递音频缓冲区并获取语音开始和停止位置的索引。因此,如果我在44kHz的频率下有10秒的音频采样时间,那么我希望得到一个数字数组,例如: 44000 88000 123000 190334 ... 例如,这将表明语音从一秒钟开始,然后在两秒钟之内结束,依此类推。 我不需要的是语音识别,它可以从口语单词中写出文字。不幸的是,这是我在Google“语音检测”中看到的很多内容。 如果该库是C,C ++甚至是Objective-C,那将非常好,因为我正在为iPhone编写应用程序。 谢谢!
18 audio  speech 

3
人类语音噪声过滤器
有人知道一个可以减弱非语音的滤波器吗?我正在写语音识别软件,想过滤掉人类语音以外的所有内容。这将包括背景噪音,microphone脚的麦克风产生的噪音,甚至是背景音乐。我已经实现了可补偿功率谱6 dB滚降的一阶滤波器,但是我仍然听到噪音(尽管语音听起来更加清晰)。我曾经考虑过使用低通滤波器,但由于两个原因,我对此并不满意: 我不知道低通前置滤波器是否会干扰其余的语音处理。即使人耳只能检测到低于20 kHz的声音,我也不想冒消除处理语音所需的任何高次谐波的风险(尽管我不知道是否是这种情况。但是我不想冒险)。 我了解某些辅音(例如f,h和s)的激发几乎完全是白噪声。可以这么说,我不想实现一个可以消除良好噪声的噪声滤波器。 理想情况下,我只想听麦克风里那个人的讲话。如果您有任何想法,或者我缺少什么,请告诉我。非常感激!

1
使用FFT频谱查找相似的音乐
我已经尝试了几个星期,以找到一种在包含不同音乐流派的图书馆中匹配/查找相似歌曲的方法。 我的第一个尝试是检测诸如Tempo之类的功能或在歌曲中有多少低音以形成组,但由于采用了这种方法(基于音量变化的节拍检测),我并没有走得太远,因为不必计算大约20%的歌曲节拍总是,有时是它们的1/2或1/3,我无法实现。 经过数周的尝试失败后,我得到了一个新的主意,本文稍后会对此进行介绍。简而言之,它通过对文件的频谱样本进行采样,使之类似于文件的“平均频谱”来进行比较。背后的想法是,例如Hardstyle比一般的摇滚音乐拥有更多的低音,我还通过查看Audacity中的一些Spectrum来验证了这一点。 文件1:获取完整的文件FFT频谱(2048个样本大小atm,对数幅度标度) 对所有频谱阵列求和,取每个仓的平均值 与其他文件相同,存储所有结果 列出文件1和其他文件之间FFT值差异的列表 对文件1和文件X之间的差异求平均值 按这些平均值升序排列 “差值”最低的歌曲被视为相似。 你们中有一些知识渊博的人可以告诉我这是否是实施我的想法的正确/好的方法吗?
16 audio  fft  music 

2
如何从立体声音频信号中提取人声部分?
我正在处理MP3文件,遇到此问题。我的MP3是立体声编码的。我要做的是提取人声部分以进行进一步处理(无论输出信号的模式是哪种,单声道或立体声都可以)。 据我所知,音频在MP3中被编码为不同的不相交的子频带。我认为我可以通过适当设置截止频率的高通/低通滤波器将信号限制在人声范围内。但是,在这种情况下,结果必须包含纯音乐信号的一部分。或在谷歌搜索之后,我想我可能会首先计算背景信号(通过将一个声道与另一个声道的信号相加而得到反相,并假设声音部分位于称为相位消除的立体声音频中)。经过此变换后,信号为单声道。然后,我应该将原始立体声合并为单声道,然后从中提取背景信号。 考虑到有效性,哪个是首选(或任何其他解决方案:)?如果是第二个,让两个通道A和B,计算背景时将使用(BA)还是(AB)?与合并两个通道一样,算术方法是否足够准确?或者我可以将每个通道下采样两倍,然后将下采样信号交织为单声道结果​​? 谢谢和最好的问候。

4
较低的频率在FFT中更强?
我正在根据麦克风输入计算FFT。我注意到,低频似乎总是比高频具有更大的功率(更高的dB)。 我将数据切成24576字节(4096 * 6)的帧。 应用汉明窗: input[i] *= (0.54d - 0.46d*(double) Math.Cos((2d*Math.PI*i)/fs)); 通过FFTW运行它Process1D()。 从复数转换: output[i] = 10.0 * Math.Log10((fout[i * 2] * fout[i * 2]) + (fout[i * 2 + 1] * fout[i * 2 + 1])); 对6个值求平均值,以获得4096字节的完整FFT。 绘制漂亮的图片(颜色映射到调色板)。 进行平均(第5页)以降低FFT噪声。 如图所示,声音和麦克风关闭时,低频处都有更多的能量(和更多的噪音)。这表明它不仅仅是麦克风/子问题。 我的问题: 1.这是预期的吗?为什么? 2.有什么标准方法可以解决此问题?几乎像某些Math.Tan()魔术可以将其提升到所属位置。 我的目标是能够确定前5个频率,而默认情况下不会赢得较低的频率。
15 audio  fft 

4
特征提取以进行声音分类
我正在尝试从声音文件中提取特征,并将声音分类为属于特定类别(例如:狗吠,汽车引擎等)。我想在以下方面做一些澄清: 1)这完全可行吗?有些程序可以识别语音,并可以区分不同类型的狗吠。但是,是否有可能有一个程序可以接收声音样本并仅说明它是哪种声音?(假设有一个包含很多声音样本的数据库)。输入的声音样本可能有点嘈杂(麦克风输入)。 2)我假设第一步是音频特征提取。该文章建议提取的MFCC并将这些资料传送到机器学习算法。MFCC是否足够?还有其他通常用于声音分类的功能吗? 感谢您的时间。

1
使用RMS获得曲目的响度
我正在尝试计算存储在缓冲区中的音轨的响度。缓冲区包含信号的PCM数据,我想通过使用均方根来获得“响度”。我假设我可以在时域中执行此操作,而不必切换到频域。这样做的伪代码是什么? 我是否只需采样一秒钟(音频[0]-音频[44099],音频[44099]-音频[88199]等),然后计算这些值的均方根值?因此,例如,我会这样做: RMS=audio[0]2+audio[1]2+audio[2]2.....audio[44099]244100−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√RMS=audio[0]2+audio[1]2+audio[2]2.....audio[44099]244100RMS = \sqrt{\frac{\text{audio}[0]^2 + \text{audio}[1]^2 + \text{audio}[2]^2.....\text{audio}[44099]^2}{44100}} 每秒钟?

2
什么时候笑轨道踢?
我的一个周末项目使我进入了信号处理的深水领域。与我所有需要一些重型数学的代码项目一样,尽管缺乏理论基础,但我很乐于尝试解决方案,但是在这种情况下,我没有任何建议,并且希望就我的问题提供一些建议,即:我正试图弄清楚电视观众在现场观众何时笑。 我花了很多时间阅读用于检测笑声的机器学习方法,但意识到这与检测单个笑声有关。一次有200个笑声的人会有不同的声音特性,我的直觉是,应该通过比神经网络更粗略的技术来区分他们。不过,我可能完全错了!希望能对此事有想法。 到目前为止,这是我一直在尝试的方法:我将最近一集的《星期六夜现场》(Saturday Night Live)中的一小段节录切成两秒的片段。然后,我将这些标记为“笑”或“不笑”。然后,我使用Librosa的MFCC特征提取器对数据运行了K-Means聚类,并获得了良好的结果-两个聚类非常整齐地映射到我的标签上。但是,当我尝试遍历较长的文件时,预测并没有成立。 我现在要尝试的是:创建这些笑声片段时,我将更加精确。我将不进行盲目拆分和排序,而是手动提取它们,以便没有对话会污染信号。然后,我将它们分成四分之一秒剪辑,计算其中的MFCC,然后使用它们来训练SVM。 我现在的问题是: 这有道理吗? 统计资料对您有帮助吗?我一直在Audacity的频谱图查看模式中滚动浏览,我可以很清楚地看到发生笑声的地方。在对数功率谱图中,语音具有非常独特的“皱纹”外观。相反,笑声则相当均匀地覆盖了很广的频率范围,几乎就像是正态分布一样。甚至可以通过掌声所代表的频率范围更有限的方式在视觉上将掌声与笑声区分开。这让我想到了标准偏差。我看到有一个叫做Kolmogorov–Smirnov的测试,在这里可能有用吗? (您可以在上图中看到笑声,因为橙色的墙壁撞到了其中的45%。) 线性声谱图似乎表明笑声在较低频率下更具活力,并在较高频率下逐渐消失-这是否意味着它相当于粉红噪声?如果是这样,那可以成为这个问题的立足点吗? 如果我误用了任何行话,我深表歉意。我已经在Wikipedia上花了很多时间,如果碰到一些混乱也不会感到惊讶。

4
实时以接近人类的准确性提取音频信号频率分量的最有效方法
我正在尝试找出如何(如果可能)以类似FFT的方式提取任意音频样本(通常是音乐)的频率分量,但是在我对FFT算法的研究中,我了解到它遭受了一些困扰为此目的有严格的限制。 FFT存在3个问题: 因为FFT二进制分辨率等于您的窗口大小,所以要获得相当合理的精度(例如1 Hz),您需要一个不合理的长窗口(例如1秒)。这意味着您无法快速检测到瞬态或新引入的频率。这也意味着使用更快的CPU和更高的采样率无法解决问题-限制本质上与时间有关。 人们对数地感知频率,但是FFT仓是线性间隔的。例如,在我们听力的低端,相差20hz 很大,而在高端处,相差20hz是不可察觉的。因此,要获得低频所需的精度,我们必须计算的远远超过高频所需的精度。 这些问题中的一些可以通过在FFT区间之间进行插值来解决。这可能适用于许多音乐音频,因为频率通常会相隔很远,因此不会有超过1个频率泄漏到一对音槽中。但这并非总是如此,特别是对于打击乐器之类的非谐音。因此,插值实际上只是猜测。 根据我对DFT / FFT算法的了解,输出(仓幅度)实际上是每个仓频率下正弦/余弦的相关性。令我吃惊的是,如果可以重新设计算法,使bin频率非线性地间隔(即,我们将一组不同的正弦/余弦相关联),那么我们就可以在所有频率上达到听觉相等的分辨率。这是可能的,还是基于我对所涉及数学的不完全理解而做的梦pipe以求? 我想我也可以通过在每个感兴趣的频率上关联正弦/余弦来用蛮力解决问题。这可能吗?什么样的效率?能解决我的问题吗? 是否有其他方法可以实现信号的更准确,实时的频率分解?CPU效率是一个关注点,但不是主要关注点-我对在理论上是否可以做到这一点感兴趣。但是,在现代台式机上实时可行的方法是理想的。

4
Scipy-音频处理
我正在寻找音频信号处理的良好工具。例如语音和音乐分析,自动语言识别等。 Scipy库是否提供音频处理功能?它是否有用于音频信号处理的好工具? 你能建议一个工具吗?

2
哪种带通滤波器设计将产生最短的脉冲响应?
设计一个简单的二阶IIR带通Buterworth滤波器,其中心频率为500 Hz,带宽为1倍频程,可以得到以下频率响应... 现在,如果我将脉冲响应进行归一化并将其转换为dB,我们可以观察到脉冲响应的衰减。 在此比例尺上绘制时,脉冲响应的衰减与时间大致呈线性关系,使我们能够定义衰减时间统计量(就像在室内声学中可以定义混响时间一样)。为了使该滤波器的脉冲响应降至30 dB以下,需要大约11 ms。 我们正在尝试最小化此衰减时间,并保持以下常数: -3 dB带宽 筛选顺序 我很乐意接受(在限制范围内)通带和阻带波纹,和/或为达到此目的而在过渡带的陡度上做出妥协。谁能建议一种如上定义的具有尽可能短的脉冲响应持续时间的滤波方法?

5
识别仅声音录制中唱歌的开始位置
我有一个小型的karaoke风格的应用程序,用户在其中唱歌4行,每行之间有一秒钟的间隔。没有背景音乐,所以只有声音,希望可以使问题更容易解决。 我正在寻找一种最可靠的方法来准确检测用户在录音中从哪里开始和结束唱歌第1行,从开始和结束唱歌第2行,等等。 我整理了一个思路简单的算法,该算法可以在录音中的背景噪音很小时(例如何时发生?)工作,但是在噪音最小的情况下会崩溃。 有人可以指出我要更强大的东西吗?

2
可以使用哪些方法来识别和消除音频系统中的回声?
背景 我正在设计一个系统,该系统将具有一个用于电话类型设置的单个小型麦克风和扬声器。我可以举的最简单的例子是Skype对话,您在其中使用计算机扬声器和台式麦克风。 我担心来自扬声器的音频会被麦克风拾取并发送回原来的人。我曾经在VoIP对话的早期一直听到这种情况,但是几乎再也听不到。 我的假设是,小组已经想出了消除回声的方法,但是他们怎么做呢? 方法 我的第一个想法是仅从麦克风信号中减去发送到扬声器的信号,除非使用这种方法,您必须考虑延迟。我不确定如何在没有某种预校准的情况下确定延迟是什么,我想避免这种情况。还有一个问题是在减去信号之前要缩放多少信号。 接下来,我考虑在扬声器信号和麦克风信号之间进行某种关联,以便确定麦克风信号为回声的可能性以及确定实际延迟的可能性。当我处理一些记录的信号时,该方法可以正常工作,但是在计算相关性以在实时系统中有用时,似乎存在很大的延迟。而且,扬声器上的可调音量使得很难确定是否确实相关。 我的下一个想法是,互联网上肯定有人成功完成了此任务,但没有找到任何很好的例子。因此,我来​​这里看看可以使用哪些方法来解决此类问题。
14 audio 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.