标签: wave

在Python中读取*.wav文件

我需要分析写在.wav文件中的声音.为此,我需要将此文件转换为数字集(例如,数组).我想我需要使用wave包.但是,我不知道它是如何工作的.例如,我做了以下事情:

import wave
w = wave.open('/usr/share/sounds/ekiga/voicemail.wav', 'r')
for i in range(w.getnframes()):
    frame = w.readframes(i)
    print frame
Run Code Online (Sandbox Code Playgroud)

由于这个代码我希望看到声压作为时间的函数.相反,我看到很多奇怪的,神秘的符号(不是十六进制数字).任何人,请求,帮助我吗?

python audio wav wave

75
推荐指数
6
解决办法
16万
查看次数

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

通过ajax传递Blob以生成文件

我正在尝试捕获audiorecorder(https://github.com/cwilso/AudioRecorder)并通过Ajax发送blob一个php文件,它将接收blob内容并创建文件(在这种情况下为wave文件).

Ajax调用:

audioRecorder.exportWAV(function(blob) {
      var url = (window.URL || window.webkitURL).createObjectURL(blob);
      console.log(url);
      var filename = <?php echo $filename;?>;
      $.ajaxFileUpload({
        url :  "lib/vocal_render.php",
        secureuri      :false,
        dataType : blob.type,
        data: blob,
        success: function(data, status) {
          if(data.status != 'error')
            alert("boa!");
        }
      });
    }); 
Run Code Online (Sandbox Code Playgroud)

和我的php文件(vocal_render.php):

<?php 

if(!empty($_POST)){
    $data = implode($_POST); //transforms the char array with the blob url to a string
    $fname = "11" . ".wav";

    $file = fopen("../ext/wav/testes/" .$fname, 'w');
    fwrite($file, $data);
    fclose($file);
}?>
Run Code Online (Sandbox Code Playgroud)

PS:我是blob和ajax的新手.提前致谢.

ajax jquery blob file-upload wave

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

ffmpeg从flac转换为wav

我需要将flac文件转换为wav文件而不改变采样率和位深度.据我所知,更改这些属性可能会扭曲音频,那么如何指定它们不被更改?

另外,有没有办法阻止元数据写入输出文件?

ffmpeg wav wave flac

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

输出格式为wave时出错

我正在尝试使用mac的say命令创建wave文件,但是,我收到以下错误:

$ say"你好"-o hi.wav

打开输出文件失败:fmt?

虽然,

$ say --file-format =?

波浪(.wav)[lpcm,ulaw,alaw]

有什么方法可以说输出波形文件?

macos terminal wave

15
推荐指数
1
解决办法
6059
查看次数

将OutputStream转换为ByteArrayOutputStream

我正在尝试将其转换OutputStreamByteArrayOutput流.我无法找到关于如何做到这一点的任何明确的简单答案.这个问题是在StackOverflow问题的标题中提出的,但问题的主体是如何将a更改ByteArrayStreamOuputStream.我OutputStream已经创建了一个,答案中给出的这个例子将无法编译!

那个问题就在这里

我有一个已经构造的OutputStream,其长度为44字节,称为waveHeader.我想将其转换为ByteArrayOutputStream,因为我希望能够使用waveHeader.ToByteArray()将其更改为byte [],以便在以后的过程中使用;

是否有简单的铸造类型或允许这样的东西?

如果没有那么:

  • 有没有办法在原始OutputStream中构造指向数据的指针,如果无法转换它的话?

  • 如何访问OutputStream中包含的数据?

我是JAVA的新手.这对我来说只是一个爱好.在VisualBasic .net中的流更容易!

java outputstream bytearrayoutputstream wave

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

如何从pydub AudioSegment创建一个numpy数组?

我知道以下问题: 如何使用numpy数组创建pydub AudioSegment?

我的问题恰恰相反.如果我有一个pydub AudioSegment如何将其转换为numpy数组?

我想使用scipy过滤器等.我不太清楚AudioSegment原始数据的内部结构是什么.

python arrays numpy wave pydub

15
推荐指数
4
解决办法
5870
查看次数

Java中的正弦波声音发生器

在Java中以任何频率生成正弦波声音的最简单方法是什么?样本大小超过2个字节会有所帮助,但这并不重要.

谢谢

java audio trigonometry javasound wave

13
推荐指数
3
解决办法
4万
查看次数

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

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

c++ audio signal-processing wave

12
推荐指数
1
解决办法
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万
查看次数