标签: wave

有什么好的C/C++ DSP库吗?

您会推荐哪种C/C++ DSP库?我需要它用于实时嵌入式系统.伴随声音信号处理也很棒,但不是强制性的.如果您对任何DSP库有所了解,请分享.

c++ audio signal-processing wave

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

从原始波数据中检测特定频率/音调

我正在读取来自麦克风的原始波流.
(这部分可以正常工作,因为我可以将它发送到扬声器并获得良好的回声.)

为简单起见,我想要检测波形数据中的DTMF音调.实际上我想检测任何频率,而不仅仅是DTMF中的频率.但我总是知道我要找的频率.

我试过通过FFT运行它,但如果我想要高精度的检测(例如它只有20毫秒),它似乎不是很有效.我可以将其检测到大约200毫秒的精度.

关于算法,我有哪些选择?它有任何.Net库吗?

c# algorithm audio wave

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

Python,如何将.wav文件拆分为多个.wav文件

我有几分钟的.wav文件,我想分成不同的10秒.wav文件.

到目前为止这是我的python代码:

import wave
import math

def main(filename, time):
    read = wave.open(filename, 'r')

#get sample rate
    frameRate = read.getframerate()

#get number of frames
    numFrames = read.getnframes()

#get duration
    duration = numFrames/frameRate

#get all frames as a string of bytes
    frames = read.readframes(numFrames)

#get 1 frame as a string of bytes
    oneFrame = read.readframes(1)

#framerate*time == numframesneeded
    numFramesNeeded=frameRate*time

#numFramesNeeded*oneFrame=numBytes
    numBytes = numFramesNeeded*oneFrame

#splice frames to get a list strings each representing a 'time' length
#wav file
    x=0
    wavList=[]
    while x+time<=duration:
        curFrame= …
Run Code Online (Sandbox Code Playgroud)

python audio wave

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

在python中更改wav文件的音量

我有一个2秒16位单通道8khz wav文件,我需要改变它的音量.

这应该是非常简单的,因为改变音量与改变信号的幅度是一样的,我只需要对它进行衰减,即将它乘以0到1之间的数字.但它不起作用:新的声音较低,但非常充满噪音.我究竟做错了什么?

这是我的代码:

import wave, numpy, struct

# Open
w = wave.open("input.wav","rb")
p = w.getparams()
f = p[3] # number of frames
s = w.readframes(f)
w.close()

# Edit
s = numpy.fromstring(s, numpy.int16) * 5 / 10  # half amplitude
s = struct.pack('h'*len(s), *s)

# Save
w = wave.open("output.wav","wb")
w.setparams(p)
w.writeframes(s)
w.close()
Run Code Online (Sandbox Code Playgroud)

感谢你们!

python audio volume wav wave

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

Python - 下采样wav音频文件

我必须在不使用任何外部python库的情况下将wav文件从44100Hz下采样到16000Hz,因此最好wave和/或audioop.我尝试使用setframerate函数将wav文件帧速率更改为16000 但这只会减慢整个录制速度.如何将音频文件下采样到16kHz并保持相同的音频长度?

非常感谢你提前

python audio wav downsampling wave

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

wave.readframes返回什么?

x通过以下方式为变量赋值:

import wave
w = wave.open('/usr/share/sounds/ekiga/voicemail.wav', 'r')
x = w.readframes(1)
Run Code Online (Sandbox Code Playgroud)

当我输入x时,我得到:

'\x1e\x00'
Run Code Online (Sandbox Code Playgroud)

所以x得到了一个价值.但那是什么?它是十六进制的吗?type(x)type(x[0])告诉我,xx[0]一个字符串.任何人都可以告诉我应该如何解释这个字符串?我可以将它们转换为整数吗?

python wave

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

Python的波浪模拟

我想在三维空间中模拟一些具有吸收和反射的传播波.我想用python做.我应该使用numpy吗?我应该使用一些特殊的库吗?

我该如何模拟波浪?我可以使用波动方程吗?但是,如果我有反思怎么办?有更好的方法吗?我应该用矢量吗?但是当光线发散时,强度会降低.难.

提前致谢.

python simulation physics numpy wave

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

AVAudioRecorder没有写出正确的WAV文件头

我正在开发iPhone上的一个项目,我正在使用AVAudioRecorder从设备麦克风录制音频,然后将操作录制.

为了确保我正确地读取文件中的样本,我使用python的波形模块来查看它是否返回相同的样本.

但是,当尝试打开由AVAudioRecorder保存的wav文件时,python的wave模块返回"fmt chunk和/或data chunk missing".

这些是我用来记录文件的设置:

[audioSettings setObject:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
[audioSettings setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
[audioSettings setObject:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
[audioSettings setObject:[NSNumber numberWithFloat:4096] forKey:AVSampleRateKey];
[audioSettings setObject:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
[audioSettings setObject:[NSNumber numberWithBool:YES] forKey:AVLinearPCMIsNonInterleaved];
[audioSettings setObject:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey]; 
Run Code Online (Sandbox Code Playgroud)

之后,我只是打电话给recordForDuration来实际录音.

录音成功 - 我可以播放文件等,我可以使用AudioFile服务读取示例,但我无法验证它,因为我无法使用Python的波形模块打开文件.

这是文件的前128个字节的样子:

1215N:~/Downloads$ od -c --read-bytes 128 testFile.wav
0000000   R   I   F   F   x   H 001  \0   W   A   V   E   f   m   t    
0000020 020  \0  \0  \0 001  \0 001  \0   @ 037  \0  \0 200   >  \0  \0
0000040 …
Run Code Online (Sandbox Code Playgroud)

python avaudiorecorder wave ios

10
推荐指数
1
解决办法
6805
查看次数

将音频转换为MIDI的软件

有没有人知道是否有好的软件可以执行从(波形或mp3或其他已知格式)到MIDI的转换?我知道从音频文件到MIDI的转换是一个非常复杂的过程.我目前正在为我的学士学位开发一个课程项目,需要操作MIDI文件.

如果你知道任何好的软件,我会接受建议.我更喜欢通过传递要转换的文件也可以从shell执行的软件.

任何帮助表示赞赏.

midi mp3 pitch-tracking wave

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

以python打开wave文件:未知格式:49.出了什么问题?

我尝试用wave模块打开一个wave文件,但是无论我尝试什么,我都会遇到同样的错误.出错的行如下:

wav = wave.open(f)
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

Traceback (most recent call last):
  File "annotate.py", line 47, in <module>
    play(file)
  File "annotate.py", line 33, in play
    wav = wave.open(f)
  File "C:\Program Files (x86)\Python\lib\wave.py", line 498, in open
    return Wave_read(f)
  File "C:\Program Files (x86)\Python\lib\wave.py", line 163, in __init__
    self.initfp(f)
  File "C:\Program Files (x86)\Python\lib\wave.py", line 143, in initfp
    self._read_fmt_chunk(chunk)
  File "C:\Program Files (x86)\Python\lib\wave.py", line 269, in _read_fmt_chunk
    raise Error('unknown format: %r' % (wFormatTag,))
wave.Error: unknown format: 49
Run Code Online (Sandbox Code Playgroud)

String f是.WAV文件的路径,在我的任何媒体播放器中播放时都可以使用.我当然导入了wave模块.我试过f …

python format wave

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