标签: audio-processing

用于确定音频样本的密钥的算法

我有兴趣确定音频样本的音乐键.算法如何(或可能)试图逼近音乐音频样本的关键字?

Antares Autotune和Melodyne是两款完成此类工作的软件.

任何人都可以给出一些关于这将如何工作的外行的解释?通过分析和弦进行的频谱等,以数学方式推断出歌曲的关键.

这个话题让我很感兴趣!

编辑 - 从为这个问题做出贡献的每个人中找到了精彩的资源和丰富的信息.

尤其来自:the_mandrill和DanielBrückner.

algorithm audio analysis sampling audio-processing

53
推荐指数
4
解决办法
2万
查看次数

如何以编程方式比较2个音频文件?

我想以编程方式比较2个音频文件.例如:我的iPhone应用程序中有一个声音文件,然后我录制了另一个.我想检查现有声音是否与录制的声音匹配( - 类似于语音识别).

我怎么能做到这一点?

iphone audio-processing ipad

32
推荐指数
3
解决办法
1万
查看次数

使用NDK构建音频处理Little Endian SDK

我试图在Android应用程序中使用Little Endian的ndk-build本机代码进行音频处理(我还没有JNI).

当我在jni dir中执行ndk-build时,我得到了($ USER_PATH是我计算机上目录的路径):

Android NDK: WARNING: Rebuilding libc++ libraries from sources!    
Android NDK: You might want to use $NDK/build/tools/build-cxx-stl.sh --stl=libc++    
Android NDK: in order to build prebuilt versions to speed up your builds!    
Android NDK: ERROR:$USER_PATH/android-ndk-r10/sources/android/compiler-rt/Android.mk:compiler_rt_shared: LOCAL_SRC_FILES points to a missing file    
Android NDK: $USER_PATH/Android/android-ndk-r10/sources/android/compiler-rt/libs/armeabi/libcompiler_rt_shared.so exists  or that its path is correct   
$USER_PATH/android-ndk-r10/build/core/prebuilt-library.mk:45: *** Android NDK: Aborting    .  Stop.
Run Code Online (Sandbox Code Playgroud)

我看到这是因为PREBUILT_STATIC_LIBRARY指向丢失的文件.

我怎么解决这个问题?

目录结构: 在此输入图像描述

有.mk文件:

Android.mk

MY_LOCAL_PATH := $(call my-dir)

ifndef LE_SDK_PATH
    LE_SDK_PATH := $(call my-dir)
endif …
Run Code Online (Sandbox Code Playgroud)

c++ android android-ndk audio-processing

32
推荐指数
1
解决办法
909
查看次数

如何使用WASAPI共享模式获得低于10ms的延迟?

根据Microsoft的说法,从Windows 10开始,使用共享模式WASAPI的应用程序可以请求小于10毫秒的缓冲区大小(请参阅https://msdn.microsoft.com/en-us/library/windows/hardware/mt298187%28v=vs. 85%29.aspx).

根据这篇文章,实现如此低的延迟需要一些驱动程序更新,我做了.使用独占模式渲染和捕获流,我测量了大约13ms的总往返延迟(使用硬件环回电缆).这告诉我,至少有一个端点成功实现了<10ms的延迟.(这个假设是正确的吗?)

文章提到应用程序可以使用新IAudioClient3界面查询Windows音频引擎使用的最小缓冲区大小IAudioClient3::GetSharedModeEnginePeriod().但是,此功能总是在我的系统上返回10ms,并且任何尝试使用任一IAudioClient::Initialize()IAudioClient3::InitializeSharedAudioStream()低于10ms的周期初始化音频流总是会导致AUDCLNT_E_INVALID_DEVICE_PERIOD.

为了确保,我还禁用了音频驱动程序中的任何效果处理.我错过了什么?甚至可以从共享模式获得低延迟?请参阅下面的示例代码.

#include <windows.h>
#include <atlbase.h>
#include <mmdeviceapi.h>
#include <audioclient.h>
#include <iostream>

#define VERIFY(hr) do {                                    \
  auto temp = (hr);                                        \
  if(FAILED(temp)) {                                       \
    std::cout << "Error: " << #hr << ": " << temp << "\n"; \
    goto error;                                            \
  }                                                        \
} while(0)


int main(int argc, char** argv) {

  HRESULT hr;
  CComPtr<IMMDevice> device;
  AudioClientProperties props;
  CComPtr<IAudioClient> client;
  CComPtr<IAudioClient2> client2;
  CComPtr<IAudioClient3> client3; …
Run Code Online (Sandbox Code Playgroud)

c++ audio audio-processing wasapi

21
推荐指数
1
解决办法
3929
查看次数

如何使用Java Sound中的音频样本数据?

这个问题通常被问到是另一个问题的一部分,但事实证明答案很长.我决定在这里回答它,所以我可以在其他地方链接到它.

虽然我不知道Java此时可以为我们生成音频样本的方式,但如果将来发生变化,这可能是一个适合它的地方.我知道JavaFX有一些这样的东西,例如AudioSpectrumListener,但仍然不能直接访问样本.


我正在javax.sound.sampled用于播放和/或录制,但我想对音频做些什么.

也许我想直观地展示它或以某种方式处理它.

如何使用Java Sound访问音频样本数据?

也可以看看:

java audio javasound audio-processing javax.sound.sampled

18
推荐指数
1
解决办法
9775
查看次数

检测风噪声

我想根据音频流开发一个用于检测风的应用程序.
我需要一些专家的想法,只是为了给我指导或一些链接,我知道这不是一件容易的事,但我打算在这里付出很多努力.

我的计划是检测流中的一些常见模式,如果值接近风噪声的这种常见模式,我将通知找到匹配,如果值更接近已知模式,我可以肯定检测到风,如果值与模式不匹配那么我猜没有那么多的风....

这是我的计划,但我需要了解这些事情是如何完成的.是否有一些开放项目已经这样做了?或者是否有人正在研究这个主题?

我在这个论坛上写的原因是因为我不知道如何谷歌它,我找到的东西不是我想要的.我真的不知道如何开始开发这种算法.

编辑1:
我试着录制一个风,当我为我打开保存的音频文件时,它只是一堆数字:).我甚至不知道我应该以什么格式保存这个,波浪足够好吗?我应该使用别的东西,或者如果我用mp3转换风噪音频文件怎么办?这会有助于解析吗?

好吧,我有很多问题,那是因为我不知道从哪里阅读更多关于这类话题的内容.我用guidlines标记我的问题,所以我希望有人会帮助我.

必须有可检测的东西,因为风噪声是如此常见,必须以某种方式检测到这一点,我们只需要有人给我提示,熟悉这个主题的人.

language-agnostic algorithm signal-processing audio-processing

17
推荐指数
1
解决办法
1345
查看次数

如何在Mac上设置录制和播放音频.Mac上的VOIP应用程序

我想在Mac上录制和播放音频.现在,我对输入/输出/ ChannelFormat的设置有一些问题......我向您展示了我在下面尝试的一些代码.

// Setup audio device
- (OSStatus) setupAudioDevice { // It's oks
    AudioComponentDescription desc;
    AudioComponent comp;

    desc.componentType = kAudioUnitType_Output;
    desc.componentSubType = kAudioUnitSubType_VoiceProcessingIO; // This type support for both iOS and Mac

    desc.componentManufacturer = kAudioUnitManufacturer_Apple;
    desc.componentFlags = 0;
    desc.componentFlagsMask = 0;

    comp = AudioComponentFindNext(NULL, &desc);
    if (comp == NULL)
    {
        return -1;
    }

    OSStatus err = AudioComponentInstanceNew(comp, &audioUnit);
    checkStatus(err);

    return err;
}

//Enable IO
//https://developer.apple.com/library/prerelease/content/technotes/tn2091/_index.html
- (OSStatus) setupEnableIO { // It's ok
    UInt32 enableIO;

    //When using AudioUnitSetProperty the 4th parameter …
Run Code Online (Sandbox Code Playgroud)

audio macos voip audio-processing echo-cancellation

17
推荐指数
1
解决办法
353
查看次数

两个音频序列之间的感知相似性

我想在两段音频之间得到某种距离测量.例如,我想比较动物的声音和模仿该动物的人的声音,然后返回声音有多相似的分数.

这似乎是一个难题.接近它的最佳方法是什么?我想从音频信号中提取一些特征,然后对这些特征进行欧几里德距离或余弦相似性(或类似的东西).什么样的功能很容易提取,有助于确定声音之间的感知差异?

(我看到Ahazam如何使用散列的东西,但这似乎是一个不同的问题,因为两个音频完全相同,增加了噪音.而在这种情况下,两个音频不一样,他们只是在感知上相似)

algorithm audio android audio-processing

16
推荐指数
2
解决办法
4622
查看次数

Bpm音频检测库

我正在寻找一个简化tempo/bpm音频检测的库.

类似于这个http://adionsoft.net/bpm/的东西,但要在*NIX机器上使用.

任何语言,但偏好到php,perl,python.

audio-processing

15
推荐指数
2
解决办法
2万
查看次数

Haskell中的音频和信号处理

你知道Haskell中音频合成/信号处理的活跃尝试吗?既可以进行现场演出,还可以进行离线处理?我不是在寻找依赖外部工具的库(比如绑定到SuperCollider).

我找到了合成器,但它已经很久没有更新了.

dsp也很有趣.但是它维持了吗?

对于纯信号处理,也有长石.它得以维持和发展.也许它可以用作构建面向音频的信号处理库的未来基础.

有类似的套餐吗?

haskell signal-processing audio-processing

14
推荐指数
2
解决办法
3092
查看次数