Questions tagged «audio»

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

1
估计噪音突然爆发的开始时间?
可以使用哪些技术来估计噪声信号中正弦音调突发的开始时间? 假设音调突发具有已知的固定频率(但相位未知)和非常陡峭的上升时间,并且目标是在不到上升时间的一半和/或音调频率的一个周期内估计开始时间, 如果可能的话。如果信噪比非常低(远小于1),估计技术将如何改变? 补充:假设音频脉冲串的长度未知,但比上升时间和频率周期的一小部分长。 补充:DFT / FFT显示了很可能存在音调。问题是要精确地找出在FFT窗口内的音调(或相同频率的多个音调猝发)可能在FFT窗口中的何处开始,或者确定当前音调是否从该DFT窗口之外开始,其他时域数据。 雷达脉冲检测的精度更接近于我需要的分辨率,除了我只有一个边缘,因为音调的长度未知,并且除了已知的上升时间以外,均未调制。窄带通滤波器会使上升时间失真,从而使边缘到达估计分辨率降低。

2
音频信号处理初学者的学习路线图
我想开始学习音频信号处理。在线上有许多书籍和学术论文似乎都忽略了该主题的基础。 可以这么说,我想知道一个大致的路线图,以便成功学习音频信号处理。 我已经读过微积分是从信号分析开始的第一步。 在我看来,音频信号分析只是所需全部知识的一部分。其他主题包括音乐理论,音频工程和编程。 如果我想请对此领域有知识的人建议一些可能的步骤,以了解如何分析和处理/创建音频信号。
13 audio 

3
在两台计算机之间(非常近的距离)通过声音传输数据
我正在写一个示例,说明如何通过两台计算机之间的声音传输数据。一些要求: 距离非常近,即两台计算机基本上彼此相邻 噪音很小(我不认为我的老师会打开摇滚歌曲作为噪音源) 错误是可以接受的:例如,如果我发送“无线电通信”,那么如果另一台计算机收到“ RadiQ通信”,也可以。 如果可能的话:没有头,标志,校验和...。因为我只想要一个非常基本的示例,演示通过声音传输数据的基础。无需幻想。 我尝试根据此链接使用音频频移键控: 实验5 APRS(自动包裹报告系统) 并得到了一些结果: 我的Github页面 但这还不够。我不知道如何进行时钟恢复,同步...(链接具有锁相环作为定时恢复机制,但显然还不够)。 因此,我认为我应该找到一种更简单的方法。在这里找到一个链接: 数据转为音频并返回。带有源代码的调制/解调 但是OP没有实现答案中建议的方法,因此恐怕它可能非常复杂。我也不清楚答案中建议的解码方法: 解码器稍微复杂一点,但这是一个概述: 可选地,对11Khz附近的采样信号进行带通滤波。这样可以在嘈杂的环境中提高性能。FIR过滤器非常简单,有一些在线设计小程序可以为您生成过滤器。 门限信号。大于1/2最大幅度的每个值都是1,小于1/2最大幅度的每个值都是0。这假设您已经采样了整个信号。如果这是实时的,则可以选择固定的阈值或执行某种自动增益控制,以在一段时间内跟踪最大信号电平。 扫描点或破折号的开始。您可能希望在点周期内看到至少一定数量的1,以将样本视为点。然后继续扫描以查看是否是破折号。不要指望完美的信号-您会在1的中间看到几个0,在0的中间看到几个1。如果噪声很小,则将“接通”周期与“断开”周期区分开应该很容易。 然后逆转以上过程。如果看到破折号,则将1推至缓冲区,如果将破折号,则推至零。 在将其归类为点之前,我不知道有多少个1,...所以我现在不了解很多事情。请向我建议一种通过声音传输数据的简单方法,以便我能理解该过程。非常感谢你 :) 更新: 我做了一些看起来(一定)可操作的Matlab代码。我首先使用幅度移位键控(采样频率48000 Hz,F_on = 5000 Hz,比特率= 10 bits / s)调制信号,然后将其与标头和结束序列相加(当然也对它们进行调制)。标头和结束序列是临时选择的(是的,这是hack): header = [0 0 1 0 1 1 1 1 1 0 0 0 0 0 0 1 …
12 audio  modulation  sound  fsk 

2
向信号中添加奇/偶谐波?
如何将奇数或偶数谐波添加到浮点信号? 我是否必须使用tanh或sin? 我正在尝试实现一些非常简单的失真效果,但是我很难找到确切的参考。我想要的是类似于文化秃鹰所做的事情,在其五极管和三极管设置中添加了奇数和偶数谐波。浮点值是样本流中的单个样本。

1
确定音频与人类语音的相似程度
在寻找这个问题的答案时,我发现这个董事会决定从Stack Overflow 交叉发布我的这个问题。 我正在寻找一种确定音频片段和人类语音之间相似性的方法,该相似性以数字表示。 我已经搜索了很多,但是到目前为止(以下详细介绍)我发现的内容并不完全符合我的需要: 一种方法是使用语音识别软件从音频片段中获取单词。但是,这种方法无法提出与人类语音“相似”的音频。它通常可以判断音频中是否有单词,但是如果没有确定的单词,就无法判断音频是否包含这些单词。示例:CMU狮身人面像,蜻蜓,SHoUT 更有希望的方法称为语音活动检测(VAD)。但是,这往往会有相同的问题:使用VAD的算法/程序倾向于仅返回是否已达到活动阈值,并且在该阈值之前或之后都没有“相似性”值。另外,许多人只是在寻找音量,而不是与人类语音相似。示例:Speex,Listener,FreeSWITCH 有任何想法吗?

4
使用FFT有效计算自相关
我正在尝试在平台上计算自相关,其中我唯一可用的加速原语是(I)FFT。我有一个问题。 我在MATLAB中原型化了它。但是,我有点困惑。我以为它的工作原理如下(这是从内存中来的,如果我有一点错的话,我深表歉意)。 autocorr = ifft( complex( abs( fft( inputData ) ), 0 ) ) 但是,我得到的结果不同于使用该xcorr函数得到的结果。现在,我完全期望不要获得自动相关的左侧(因为这是右侧的反映,因此无论如何都不需要)。但是,问题是我的右手侧似乎在中点附近反射。这实际上意味着我得到的数据量约为预期的一半。 因此,我敢肯定我一定在做一些非常简单的错误,但我只是不知道该怎么做。

2
在嘈杂的.wav文件中检测鼓bpm
我正在寻找解决以下问题的算法:给定嘈杂的.wav声音捕获(麦克风上有风和摩擦噪声),如何检测柔和鼓声的BPM? 我尝试过搜索该主题,但由于用于分析和生成指纹ID的大量mp3相关软件,结果非常差。他们都没有提供有关如何实际执行操作的信息。 我知道消除噪声的算法,但是仍然使我面临检测BPM的问题。而且,根据解决BPM问题的方式,可能甚至不需要去噪(由于鼓的频率往往较低,而噪声的频率较高,因此简单的低通可能就足够了)。

2
参数化语音以删除情感内容
我很高兴接受R或Matlab中的建议,但是我在下面介绍的代码仅是R。 下面附带的音频文件是两个人之间的简短对话。我的目标是使他们的讲话失真,使情感内容变得无法识别。困难在于,我需要一些参数空间来使这种变形从1到5,其中1是“高度可识别的情绪”,而5是“不可识别的情绪”。我认为我可以使用三种方法来实现R。 从此处下载“快乐”音频波。 从此处下载“愤怒”音频波。 第一种方法是通过引入噪声来降低整体清晰度。下面介绍了此解决方案(感谢@ carl-witthoft的建议)。这将同时降低语音的清晰度和情感内容,但这是非常“肮脏的”方法-很难正确地获得参数空间,因为您可以控制的唯一方面是噪声(音量)。 require(seewave) require(tuneR) require(signal) h <- readWave("happy.wav") h <- cutw(h.norm,f=44100,from=0,to=2)#cut down to 2 sec n <- noisew(d=2,f=44100)#create 2-second white noise h.n <- h + n #combine audio wave with noise oscillo(h.n,f=44100)#visualize wave with noise(black) par(new=T) oscillo(h,f=44100,colwave=2)#visualize original wave(red) 第二种方法是以某种方式调整噪声,仅在特定频带中使语音失真。我以为我可以通过从原始音频波中提取幅度包络,从该包络中产生噪声,然后将噪声重新应用于音频波来做到这一点。下面的代码显示了如何执行此操作。它所做的与噪声本身不同,使声音破裂,但它又回到了同一点-我只能在此处更改噪声的幅度。 n.env <- setenv(n, h,f=44100)#set envelope of …
12 matlab  audio  noise 

2
减法传感器之间具有互感的输出
背景:我用来分析信号的软件是matlab。我有两个使用两个磁传感器记录的音频信号。让我们将一个传感器称为A,将另一个称为B。A和B在它们之间具有互感。 当传感器A和B工作时,我想减去由于传感器B的互感而在传感器A中收到的信息。 我试图通过简单地写入matlab(AB)从信号A中减去信号B,但这给了我一个奇怪的答案。我认为这源于我同阶段的转变。这两个音轨的开始录制时间是相同的,因此我认为这不是时间延迟。 我想知道理论上如何进行这种减法过程,如果有人想知道如何在matlab中轻松实现它的技巧,我想知道。 我将非常感谢您的帮助。 提前致谢。 下面我附上信号图的图片。在第一张图片中,您可以看到从传感器A和B接收到的信号。在第二张图片中,我将传感器A绘制为红色,将传感器B绘制为蓝色,范围为2.12:2.16,并且放大了更多。
12 audio 

1
识别歌曲中的数学函数
我是DSP的新手,刚刚发现了这个StackExchange,因此,如果不是发布此问题的正确位置,请道歉。 是否有资源以更数学的术语描述类型?例如,如果我已经对歌曲这一部分的信号执行了FFT(如果链接没有从那里开始,则是2:09),那么我有什么办法可以检测到该部分的分类很粗糙的声音?这样的声音是否遵循我可以比较的一些数学函数? http://www.youtube.com/watch?v=SFu2DfPDGeU&feature=player_detailpage#t=130s(链接立即开始播放声音) 是使用监督学习技术的唯一方法,还是有其他方法(最好不需要监督)? 感谢您的任何建议。

3
如何比较2个音频文件,返回差异百分比
有没有一种方法可以比较2个音频文件,从而返回一定百分比的差异?我正在使用C#VS08,.net framework 3.5。 编辑:声音的差异(例如,音频1 :"HELP"、音频2 :"HELP ME PLEASE",它将返回这2种音频之间的百分比差异。) 我目前正在以wav格式保存录制的文件,其比特率和质量也将与录制和比较的比特率相同。我想问一下是否有一种方法可以比较两个具有相同属性和相同格式(WAV)的音频文件中的声音(而不仅仅是二进制文件),并显示两个音频文件中两个声音之间的百分比差异。 帮助将不胜感激。
12 audio  c# 

5
何时考虑音频的双精度(64位)浮点
在现代处理器上合成和处理音频时,何时会考虑使用单精度(32位)浮点以外的其他东西?显然,进出现实世界的音频是16/24位,所以我只是在谈论软件中信号的精度(包括音频本身和诸如滤波器系数之类的东西)。 假使,假设: CPU / DSP具有对单精度和双精度的硬件浮点支持 优先考虑的是高质量音频,而不是高性能。例如,如果双精度可提供更好的(感知)质量,则将考虑采用双精度。

3
如何使用FFT或DFT重新采样音频
我首先通过执行FFT,然后仅获取所需结果的一部分,然后执行逆FFT,来对语音音频进行下采样。但是,只有当我使用两个都是2的幂的频率(例如从32768降到8192的下采样)时,它才能正常工作。我对32k数据执行FFT,丢弃数据的前3/4,然后执行对其余的1/4进行逆FFT。 但是,每当我尝试使用无法正确排列的数据来执行此操作时,就会发生以下两种情况之一:我使用的数学库(Aforge.Math)会产生拟合,因为我的样本不是2的幂。如果我尝试对样本进行零填充,以使它们成为二乘幂,则另一端会产生乱码。我还尝试使用DFT来代替,但最终会变得异常缓慢(这需要实时进行)。 在初始FFT和最后的逆FFT上,我如何正确地对FFT数据进行零填充?假设我有一个44.1khz的样本需要达到16khz,我目前正在尝试这样的样本,样本大小为1000。 将输入数据最后填充到1024 执行FFT 将前512个项目读入数组(我只需要前362个,但需要^ 2) 执行逆FFT 将前362个项目读入音频播放缓冲区 由此,我最后得到了垃圾。进行相同的操作,但由于样本已经是^ 2,而不必在步骤1和3进行填充,可以得出正确的结果。
12 c#  audio 

2
音频信号插值的最新技术
三个问题: 一个可以客观地测量音频插值质量的指标是什么?(如果可能,还包括心理声学方面的内容) 通过这些指标,音频插值技术的最新状态是什么? 假设我要以两种分辨率从虚拟仪器的音符序列中渲染两个文件,然后将一个文件的上采样与高频渲染版本进行比较,那么可以使用哪种软件客观地比较这些文件?-理想情况下使用上述指标 到目前为止,据我所知,这些重采样器提供了一些最好的质量 http://www.mega-nerd.com/SRC/ http://sox.sourceforge.net/SoX/ http://www.izotope.com/tech/src/ 这些重采样器似乎存在的问题之一是振铃前后。 我应该指出,最重要的是信号重构(因为该术语意义重大),因此上采样比下采样更多。 编辑:在这种情况下插值时间效率是不相关的。 最好的问候,好奇:-)
11 audio  sampling 

4
编程声码器
我想对自己的声码合成器(如“ Songify”)进行编程,但找不到简单的声码器算法。也许您可以解释或告诉在哪里可以找到有关声码器工作原理的信息。

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.