标签: audio-processing

从混合波(或其他音乐格式)文件中从特定的仪器中提取特定的旋律/节拍/节奏

是否有可能编写一个程序,可以提取由多个乐器组成的波(或其他音乐格式)文件中的特定乐器提供的旋律/节拍/节奏?

哪种算法可用于此以及哪种编程语言最适合它?

language-agnostic algorithm audio audio-processing

6
推荐指数
1
解决办法
3138
查看次数

Python随时间查找音频和振幅

这是我想做的.我想在.wav文件的每个1ms处找到.wav文件的音频和幅度,并将其保存到文件中.我已经绘制了频率与幅度的图表,并且随着时间的推移绘制了幅度,但我无法计算频率超时.我的最终目标是能够读取文件并使用它们调整变量和频率以触发正在使用的变量,这似乎是最简单的部分.我一直在使用numpy,audiolab,matplotlib等...使用FFT,但我只是想不出这个,任何帮助表示赞赏!谢谢!

python frequency audio-processing

6
推荐指数
1
解决办法
5108
查看次数

AVAudioPlayer率

所以我试图在iOS 5.1.1中以不同的速率播放声音文件,并且绝对没有运气.到目前为止,我已经尝试设置AVAudioPlayer的速率:

player = [[AVAudioPlayer alloc] initWithContentsOfURL:referenceURL error:&error];
player.enableRate = YES;
player.rate = 1.5;
player.numberOfLoops = 0;
player.delegate = self;
[player prepareToPlay];
[player play];
Run Code Online (Sandbox Code Playgroud)

没有运气,声音只会忽略我给它的速度.我也试过AVPlayer:

avPlayer = [[AVPlayer alloc] initWithURL:referenceURL];
avPlayer.rate = 0.5;
[avPlayer play];
Run Code Online (Sandbox Code Playgroud)

再次,它播放但只是忽略我设置的速率.我尝试了很多不同的音频文件但是为了这个帖子我从这个目录中选择了Rooster-mono.wav:http://sig.sapp.org/sounds/wave/

有没有人在改变iOS 5.1.1的播放速度方面取得了哪些成功?或者有人知道我在这里失踪了吗?

我这样做是为了改变音高的轻微我的一些样品,我知道我可以通过使用RemoteIO或类似的东西做到这一点,但似乎总矫枉过正我想实现(一个简单的播放速度调整).

avfoundation avaudioplayer audio-processing ios avplayer

6
推荐指数
2
解决办法
7789
查看次数

我可以在Android应用程序中测量声音的距离吗?

这次我有很多问题,虽然它们都与同样的问题有关:我想在Android中构建一个基本的声纳,并且不知道如何做这样的事情.

  • 是否可以合理地运作?
  • 比较波形的最佳方法(在移动应用程序中有意义)是什么?
  • 我是否可以可靠地测量在小型机箱(例如房间)中发送和接收给定波形之间的延迟?
  • 是否有任何方法(在移动应用程序中有意义)丢弃由不平坦表面(例如,打开门)产生的噪音?

只是想在这里定位,因为我对移动应用程序中的声音处理真的很陌生.提前致谢!

android waveform audio-processing

6
推荐指数
0
解决办法
378
查看次数

音乐检测(不是识别)

我正在尝试构建一个 C# 应用程序来检测视频中何时出现音乐。我可以找到任何需要的格式的音频。然而,我在音乐检测方面遇到了障碍。

有大量关于音频指纹识别以及如何用 C#/任何语言执行此操作的帖子。然而,我想要电影中音乐出现的大致进出时间,我不关心音乐是什么。

该音乐不太可能存在于任何指纹数据库中。因此可能是完全计算分析。

有什么巧妙的想法吗?或者我会最好地实现节拍检测算法并逐段处理它。然后估计入点/出点?

c# audio audio-processing

5
推荐指数
1
解决办法
1740
查看次数

检测原始 PCM 数据中的声级

我编写了一个小程序,需要检测声音级别,如果级别高于设置中设置的级别,则将其写入,我通过 portaudio 进行声音捕获,通过 libvorbis 压缩,但程序的一部分尚未完成,我坚持下去,我需要检测声音原始 pcm 数据的级别,我对 pcm 数据是什么不太了解,并且不知道任何音频分析/处理算法,我们是否有现有的 c/c++ 库可以做到这一点?或者是一些可以在其中实现的简单算法c/c++ 存在吗?

c++ audio pcm audio-processing

5
推荐指数
2
解决办法
5517
查看次数

使用长脉冲响应的实时卷积混响算法?

我试图用C#编写音频应用程序并需要实现一个实时卷积混响处理器.我目前使用的方法是在使用长度超过~16,000个样本(44.1kHz)的脉冲响应时发生故障.我需要能够使用至少2秒或88,200个样本的脉冲响应.这是我尝试绘制我正在使用的方法的最佳尝试:

在此输入图像描述

我使用的块大小是2048个样本.我正在使用NAudio库进行FFT,并且在负载时预先计算脉冲响应的FFT.

我的方法有什么问题?我知道我所追求的是可能的,因为我已经使用了大量的音频应用来完成它.

编辑:原来有两个问题:我使用的FFT库不够快,而且,对于这种类型的应用程序,C#通常不够快.在切换到非托管代码(C++)和更好的FFT库(FFTW)之后,问题得以解决.

algorithm optimization fft convolution audio-processing

5
推荐指数
0
解决办法
2353
查看次数

从 PyAudio 接收的数据的 FFT 给出错误的频率

我的主要任务是实时识别麦克风中的人类嗡嗡声。作为识别一般信号的第一步,我对手机上的应用程序生成的 440 Hz 信号进行了 5 秒的记录,并尝试检测相同的频率。

我使用 Audacity 绘制并验证了同一个 440Hz wav 文件的频谱,我得到了这个,这表明 440Hz 确实是主频率:( https://i.stack.imgur.com/c3DWD.png )

为了使用 python 执行此操作,我使用PyAudio库并参考此博客。到目前为止,我使用 wav 文件运行的代码是这样的:

"""PyAudio Example: Play a WAVE file."""

import pyaudio
import wave
import sys
import struct
import numpy as np
import matplotlib.pyplot as plt

CHUNK = 1024

if len(sys.argv) < 2:
    print("Plays a wave file.\n\nUsage: %s filename.wav" % sys.argv[0])
    sys.exit(-1)

wf = wave.open(sys.argv[1], 'rb')

p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels=wf.getnchannels(),
                rate=wf.getframerate(),
                output=True)

data = wf.readframes(CHUNK)

i …
Run Code Online (Sandbox Code Playgroud)

python signal-processing audio-processing pyaudio

5
推荐指数
1
解决办法
3490
查看次数

AudioWorklet - 将输出设置为 Float32Array 以流式传输实时音频?

我有从服务器到客户端的音频数据流。它以 Node.js 缓冲区(Uint8Array)开始,然后通过 port.postMessage() 发送到 AudioWorkletProcessor,在其中转换为 Float32Array 并存储在 this.data 中。我花了几个小时尝试将输出设置为 Float32Array 中包含的音频数据。记录 Float32Array 预处理会显示准确的数据,但在处理期间记录它会显示在发布新消息时数据不会发生变化。这可能是我低级音频编程知识的一个空白。

当数据到达客户端时,将调用以下函数:

  process = (data) => {
        this.node.port.postMessage(data)
  }
Run Code Online (Sandbox Code Playgroud)

顺便说一句,(你可以让我知道)也许我应该使用参数描述符而不是 postMessage ?无论如何,这是我的 AudioWorkletProcessor:

class BypassProcessor extends AudioWorkletProcessor {

  constructor() {
    super();
    this.isPlaying = true;
    this.port.onmessage = this.onmessage.bind(this)
  }

  static get parameterDescriptors() {
    return [{ // Maybe we should use parameters. This is not utilized at present.
      name: 'stream',
      defaultValue: 0.707
    }];
  }

  convertBlock = (incomingData) => { // incoming data is a UInt8Array
    let i, l = …
Run Code Online (Sandbox Code Playgroud)

javascript audio-streaming node.js audio-processing web-audio-api

5
推荐指数
1
解决办法
3133
查看次数

AAC 数据包大小

我正在处理具有以下元数据的 M4a 文件:

Metadata:
    major_brand     : M4A 
    minor_version   : 0
    compatible_brands: M4A mp42isom
    creation_time   : 2019-08-14T13:45:39.000000Z
    iTunSMPB        :  00000000 00000840 00000000 00000000000387C0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  Duration: 00:00:05.25, start: 0.047891, bitrate: 69 kb/s
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 65 kb/s (default)
Run Code Online (Sandbox Code Playgroud)

音频持续时间 = 5246.2585 毫秒

我正在尝试使用以下公式计算帧数:

duration * sampling rate / frame size = 5246.2585 * 44.1/1024 = 225.9375 frames
Run Code Online (Sandbox Code Playgroud)

我尝试了多个文件,它总是给出 xxx.9357 帧。

但是,使用 FFprobe:

ffprobe -i audio.m4a  -show_streams …
Run Code Online (Sandbox Code Playgroud)

audio aac m4a audio-processing ffprobe

5
推荐指数
1
解决办法
3837
查看次数