如何将wav文件转换为浮动幅度

2023-11-24

所以我问了标题中的所有内容:

我有一个 wav 文件(由 PyAudio 从输入音频编写),我想将其转换为与声级(振幅)相对应的浮点数据,以进行一些傅里叶变换等...

有人有将 WAV 数据转换为 float 的想法吗?


我已经找到了两种不错的方法来做到这一点。

方法一:使用wavefile模块

如果您不介意安装一些额外的库,请使用此方法,这些库在我的 Mac 上会有点麻烦,但在我的 Ubuntu 服务器上很容易。

https://github.com/vokimon/python-wavefile

import wavefile

# returns the contents of the wav file as a double precision float array
def wav_to_floats(filename = 'file1.wav'):
    w = wavefile.load(filename)
    return w[1][0]

signal = wav_to_floats(sys.argv[1])
print "read "+str(len(signal))+" frames"
print  "in the range "+str(min(signal))+" to "+str(max(signal))

方法二:使用wave模块

如果您希望减少模块安装的麻烦,请使用此方法。

从文件系统读取 wav 文件并将其转换为 -1 到 1 范围内的浮点数。它适用于 16 位文件,如果它们 > 1 个通道,将以与在文件中找到的相同方式交错样本。对于其他位深度,请根据本页底部的表更改 struct.unpack 参数中的“h”:

https://docs.python.org/2/library/struct.html

它不适用于 24 位文件,因为没有 24 位数据类型,因此无法告诉 struct.unpack 做什么。

import wave
import struct
import sys

def wav_to_floats(wave_file):
    w = wave.open(wave_file)
    astr = w.readframes(w.getnframes())
    # convert binary chunks to short 
    a = struct.unpack("%ih" % (w.getnframes()* w.getnchannels()), astr)
    a = [float(val) / pow(2, 15) for val in a]
    return a

# read the wav file specified as first command line arg
signal = wav_to_floats(sys.argv[1])
print "read "+str(len(signal))+" frames"
print  "in the range "+str(min(signal))+" to "+str(max(signal))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将wav文件转换为浮动幅度 的相关文章

  • 获取 .wav 文件长度或持续时间

    我正在寻找一种方法来找出 python 中音频文件 wav 的持续时间 到目前为止我已经了解了 pythonwave图书馆 mutagen pymedia pymad我无法获取 wav 文件的持续时间 Pymad给了我持续时间 但它不一致
  • Python 切片对象和 __getitem__

    python 中是否有内部的东西来处理传递给的参数 getitem 不同 并自动转换start stop step构造成切片 这是我的意思的演示 class ExampleClass object def getitem self args
  • 此 TypeError 消息中提到的“代码对象”是什么?

    在尝试使用Python时exec声明 我收到以下错误 TypeError exec arg 1 must be a string file or code object 我不想传递字符串或文件 但什么是代码对象 如何创建一个 创建代码对象的
  • 将 numpy 数组合并为单个 int

    numpy 数组怎么可以这样 10 22 37 45 转换为单个 int32 数字 如下所示 10223745 这可以工作 gt gt gt int join map str 10 22 37 45 10223745 基本上你使用map s
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • 使用 Django 将文件异步上传到 Amazon S3

    我使用此文件存储引擎在上传文件时将文件存储到 Amazon S3 http code welldev org django storages wiki Home http code welldev org django storages w
  • 使用 Boto3 以字符串形式打开 S3 对象

    我知道使用 Boto 2 可以使用以下命令将 S3 对象作为字符串打开 get contents as string http boto readthedocs org en latest ref file html highlight c
  • Series.sort() 和 Series.order() 有什么区别?

    s pd Series nr randint 0 10 5 index nr randint 0 10 5 s Output 1 3 7 6 2 0 9 7 1 6 order 按值排序并返回一个新系列 s order Output 2 0
  • 使用 Paramiko 进行 DSA 密钥转发?

    我正在使用 Paramiko 在远程服务器上执行 bash 脚本 在其中一些脚本中 存在与其他服务器的 ssh 连接 如果我只使用 bash 不使用 Python 我的 DSA 密钥将被第一个远程服务器上的 bash 脚本转发并使用 以连接
  • Python Tkinter 模块不显示输出

    我正在尝试学习 Python 并尝试使用 Python 中的 GUI 并遇到了这个 Tkinter 模块 我的代码运行 但运行时窗口没有出现 我的代码如下 from Tkinter import to create a root windo
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • python中basestring和types.StringType之间的区别?

    有什么区别 isinstance foo types StringType and isinstance foo basestring 对于Python2 basestring是两者的基类str and unicode while type
  • 查找 Pandas DF 行中的最短日期并创建新列

    我有一个包含多个日期的表 有些日期将为 NaN 我需要找到最旧的日期 所以一行可能有 DATE MODIFIED WITHDRAWN DATE SOLD DATE STATUS DATE 等 因此 对于每一行 一个或多个字段中都会有一个日期
  • 如何查找或安装适用于 Python 的主题 tkinter ttk

    过去 3 个月我一直在制作一个机器人 仅用代码就可以完美运行 现在我的下一个目标是为它制作一个 GUI 但是我发现了一些障碍 主要的一个是能够看起来不像一个 30 年前的程序 我使用的是 Windows 7 我仅使用 Python 3 3
  • Ubuntu systemd 自定义服务因 python 脚本而失败

    希望获得有关 Ubuntu 中的 systemd 守护进程服务的一些帮助 我写了一个 python 脚本来禁用 Dell XPS 上的触摸屏 这更像是一个问题 而不是一个有用的功能 该脚本可以工作 但我不想一直启动它 这就是为什么我想到编写
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • XPath:通过当前节点属性选择当前和下一个节点的文本

    首先 这是从我之前的问题 https stackoverflow com questions 5202187 xpath select current and next nodes text by current node attribut
  • 如何指示 urwid 列表框的项目数多于当前显示的项目数?

    有没有办法向用户显示 urwid 列表框在显示部分上方 下方有其他项目 我正在考虑类似滚动条的东西 它可以显示条目的数量 或者列表框顶部 底部的单独栏 如果这个行为无法实现 有哪些方法可以实现这个通知 在我的研究过程中 我发现这个问题 ht
  • 将 Keras 集成到 SKLearn 管道?

    我有一个 sklearn 管道 对异构数据类型 布尔 分类 数字 文本 执行特征工程 并想尝试使用神经网络作为我的学习算法来拟合模型 我遇到了输入数据形状的一些问题 我想知道我想做的事情是否可能 或者我是否应该尝试不同的方法 我尝试了几种不

随机推荐

  • 从另一个项目 ID 访问现有云 SQL 实例

    我已经在 PHP 项目中创建了一个云 sql 实例 并成功完成了计费过程 该项目有效 现在 我想从另一个项目访问我的数据库 但这次是在带有 servlet 的 Java SDK 项目中 使用中的示例https developers goog
  • scanf() 的宽度说明符 - 要使用的字符长度在编译时不固定,仅在运行时确定。如何使其可变?

    我想将字段宽度说明符应用于 scanf 操作来读取字符串 因为明确指定了要读取 使用的字符数 而不是使scanf 容易导致缓冲区溢出的操作 以及目的地参数指向已经匹配的char数组 其元素的大小正好相同 字段宽度的所需值必须为 1 0 这个
  • 如何将文本添加到 pygame 矩形中

    我已经在 pygame 中绘制了一个矩形 但是我需要能够将 Hello 之类的文本放入该矩形中 我怎样才能做到这一点 如果您也能解释一下 将不胜感激 谢谢 这是我的代码 import pygame import sys from pygam
  • 如何使用java生成像apache的htpasswd这样的哈希值

    我在 htpasswd 中使用 强制对密码进行 MD5 加密 来生成哈希 例如我得到的 123 使用 htpasswd 123 gt apr1 kaTbKaLO ewJXRZAKpjaxK4thy2jOp 使用 MD5 摘要 123 gt
  • 如何检查列表是否包含相同顺序的另一个列表

    C 中有没有简单的方法来检查列表是否包含另一个列表 这是一个例子 我有 var list1 new List
  • 虚拟/纯虚拟解释

    如果一个函数被定义为虚函数到底意味着什么 它与纯虚函数相同吗 From 维基百科的虚函数 在面向对象编程中 在 C 和 Object Pascal 等语言中 虚函数或虚方法是可继承且可重写的函数或方法 便于动态分派 这个概念是面向对象编程
  • JavaFX 的 Spinner 在空文本输入上引发 NullPointerException

    我有一个问题 可编辑的 JavaFX 8Spinner导致未捕获NullPointerException如果清除编辑器文本并提交 然后单击递增或递减按钮 这是j8u60 j8u77 如果运气好的话 递增 递减按钮将卡在按下状态 NPE 会继
  • 如何在 Xcode 4 中打开内存浏览器?

    在 Xcode 3 中调试程序时 我经常在单独的窗口中使用内存浏览器来查看缓冲区更改的内容 同时单步执行代码行 当我现在开始使用 Xcode 4 时 我想知道如何打开内存浏览器 我在用户界面中找不到类似的东西 有人可以提供帮助吗 调试时选择
  • Android 10 无法注册 Sensor.TYPE_STEP_COUNTER

    我目前正在开发一个应用程序来跟踪步骤 为了跟踪步骤 我使用手机的以下传感器 传感器 TYPE STEP COUNTER 这对于我测试过的所有设备都运行良好 最近我有机会在三星 S10 设备上测试该应用程序 但它不再跟踪步骤 而它在三星 S9
  • HTML5 视频:可以在视频上放置常规 html 内容

    只是想知道是否有人知道让常规 html 内容 主要是 img 标签 显示在视频顶部 通过 video 标签 的技巧 正如其他人所暗示的 将 HTML 元素放置在VIDEO使用绝对定位的元素 当您尝试在 iPhone iPod 和可能较旧的
  • 如何在 Visual Studio 中提取默认控件模板?

    我想知道如何使用 Visual Studio 提取 获取副本 给定控件的默认模板 我知道这可以使用 Expression Blend 来完成 右键单击控件 编辑模板 gt 编辑副本 然后将默认控件模板复制到我的 Xaml 中 但这可以用 V
  • POST 和 PUT 的不同模型要求

    假设我有一个控制器CatController包括 GET POST 和 PUT 操作 他们都使用相同的Cat资源可能如下所示 public class CatDto public int Id get set Required public
  • 为什么 hazelcast 的默认分区数为 271?选择分区数的参数是什么?

    我刚刚浏览了 hazelcast 文档 它表明数据跨所有节点进行分区 默认情况下在集群 271 中创建的分区数 哪些参数控制正确分区计数值的选择 为什么默认分区数是 271 271 是质数 给定任何键 Hazelcast 都会对键进行哈希处
  • Jenkins:开始构建时发送电子邮件通知

    在 Jenkins 中 有没有办法在开始构建时发送邮件 我知道有一个构建后电子邮件通知 它会在构建成功或失败后向给定收件人发送邮件 同样 我期待类似预构建通知之类的东西 还有一个条件电子邮件 例如 if username null 发送至
  • 我的智能手机每秒可以执行多少次 FFT? (用于执行语音识别)

    我正在探索语音识别和 DSP 因此我想在我的智能手机上实现一个简单的声音频率分析仪 我有一部 iPhone 和一部运行 Android 的三星 Nexus S 我以前在Matlab中做过基本的DSP 根据我的理解 我需要执行 FFT 来获取
  • 如何使用 UWP MarkupExtension 类?

    Fall Creators 更新 SDK 添加了标记扩展类 非常棒 https learn microsoft com en us uwp api windows ui xaml markup markupextension 所以我创建了一
  • 创建交互式应用程序原型的最佳方法是什么?

    这个问题应该从一般的角度来解释 而不是仅仅针对网络应用程序或桌面应用程序 我一直在寻找一种简单易用的方法来为 Web 应用程序创建交互式原型 我想使用一种技术 允许简单的 UI 创建 特别是在进一步迭代中重新创建和修改 UI 用模型数据填充
  • android:TimePickerDialog 阻止用户选择过去的时间,并可以选择具有新日期的未来时间

    我正在使用这个链接Android TimePickerDialog 设置最大时间 我是安卓新手 借助此代码 我无法选择过去的时间 但我们无法选择未来的时间 当在时间选择器对话框模式中选择 12 时 根据第二天而不是过去的一天自动更改为 am
  • AngularJS:扩展输入指令

    我想知道是否可以扩展 Angular 的输入指令 我想将一些侦听器附加到页面上的所有输入字段 我认为你可以用以下方式装饰现有模块 provide decorate 但我不知道如何使用指令 更准确地说是输入指令 来做到这一点 那么 有人能把我
  • 如何将wav文件转换为浮动幅度

    所以我问了标题中的所有内容 我有一个 wav 文件 由 PyAudio 从输入音频编写 我想将其转换为与声级 振幅 相对应的浮点数据 以进行一些傅里叶变换等 有人有将 WAV 数据转换为 float 的想法吗 我已经找到了两种不错的方法来做