如何使用 Python 将 scipy.signal.spectrogram 反转为音频?

2023-12-11

I have:

import librosa
from scipy import signal 
import scipy.io.wavfile as sf    

samples, sample_rate = sf.read(args.file)
nperseg = int(sample_rate * 0.001 * 20)
frequencies, times, spectrogram = signal.spectrogram(samples, 
                                                     sample_rate, 
                                                     nperseg=nperseg, 
                                                     window=signal.hann(nperseg))

audio_signal = librosa.griffinlim(spectrogram)
print(audio_signal, audio_signal.shape)

sf.write('test.wav', audio_signal, sample_rate)

然而,这会产生一个(接近)空的声音文件。


正如@DrSpill 提到的,scipy.io.wav.read and scipy.io.wav.write订单错误,进口也错误librosa不正确。这应该可以做到:

import librosa
import numpy as np
import scipy.signal
import scipy.io.wavfile

# read file
file    = "temp/processed_file.wav"
fs, sig = scipy.io.wavfile.read(file)
nperseg = int(fs * 0.001 * 20)

# process
frequencies, times, spectrogram = scipy.signal.spectrogram(sig, 
                                                           fs, 
                                                           nperseg=nperseg, 
                                                           window=scipy.signal.hann(nperseg))
audio_signal = librosa.core.spectrum.griffinlim(spectrogram)
print(audio_signal, audio_signal.shape)

# write output
scipy.io.wavfile.write('test.wav', fs, np.array(audio_signal, dtype=np.int16))

Remark:当我听到它时,生成的文件节奏加快了,我认为这是由于您的处理造成的,但经过一些调整它应该可以工作。

一个好的选择是只使用librosa, 像这样:

import librosa
import numpy as np

# read file
file    = "temp/processed_file.wav"
sig, fs = librosa.core.load(file, sr=8000)

# process
abs_spectrogram = np.abs(librosa.core.spectrum.stft(sig))
audio_signal = librosa.core.spectrum.griffinlim(abs_spectrogram)

print(audio_signal, audio_signal.shape)

# write output
librosa.output.write_wav('test2.wav', audio_signal, fs)
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Python 将 scipy.signal.spectrogram 反转为音频? 的相关文章

  • pip 安装最新的依赖版本

    当我使用安装包时pip install e 它仅安装不满足的依赖项并忽略依赖项升级 如何在每次运行时安装最新的依赖版本pip install e 我尝试过使用pip install upgrade e 但是使用这个选项没有任何改变 我仍然得
  • 嵌套函数中的变量作用域

    有人可以解释为什么以下程序失败 def g f for in range 10 f def main x 10 def f print x x x 1 g f if name main main 带有消息 Traceback most re
  • 使用python编辑html,但是lxml将漂亮的html实体转换为奇怪的编码

    我正在尝试使用 python 带有 pyquery 和 lxml 来更改和清理一些 html Eg html div p It 146 s a spicy meatball p div lxml html clean 函数 clean ht
  • 让 python 脚本打印到终端而不作为标准输出的一部分返回

    我正在尝试编写一个返回值的 python 脚本 然后我可以将其传递给 bash 脚本 问题是我想要在 bash 中返回一个单一值 但我想要一些东西一路打印到终端 这是一个示例脚本 我们称之为 return5 py usr bin env p
  • FastAPI UploadFile 与 Flask 相比慢

    我创建了一个端点 如下所示 app post report upload def create upload files files UploadFile File try with open files filename wb as wf
  • Python SQLite3 SQL注入漏洞代码

    我知道下面的代码片段由于 format 的原因很容易受到 SQL 注入的攻击 但我不知道为什么 有谁明白为什么这段代码容易受到攻击以及我从哪里开始修复它 我知道这些代码片段使输入字段保持打开状态 以便通过 SQL 注入执行其他恶意命令 但不
  • pandas DataFrame 中行的高效成对比较

    我目前正在处理一个较小的数据集 大约 900 万行 不幸的是 大多数条目都是字符串 即使强制类别 框架在内存中也只有几 GB 我想做的是将每一行与其他行进行比较 并对内容进行直接比较 例如 给定 A B C D 0 cat blue old
  • 按升序对数字字符串列表进行排序

    我创建了一个SQLite https en wikipedia org wiki SQLite数据库有一个存储温度值的表 第一次将温度值按升序写入数据库 然后 我将数据库中的温度值读入列表中 然后将该列表添加到组合框中以选择温度 效果很好
  • Python正则表达式替换引号中的文本(引号本身除外)

    例如 我有一个测试字符串 content I opened my mouth Good morning I said cheerfully 我想使用正则表达式删除双语音标记之间的文本 但不删除语音标记本身 所以它会返回 I opened m
  • 如何在 tkinter 后台运行函数[重复]

    这个问题在这里已经有答案了 我是 GUI 编程新手 我想用 tkinter 编写一个 Python 程序 我想要它做的就是在后台运行一个可以通过 GUI 影响的简单函数 该函数从 0 计数到无穷大 直到按下按钮为止 至少这是我想要它做的 但
  • 数据类和属性装饰器

    我一直在阅读 Python 3 7 的数据类 作为命名元组的替代品 我通常在必须将数据分组到结构中时使用它 我想知道数据类是否与属性装饰器兼容 以便为数据类的数据元素定义 getter 和 setter 函数 如果是这样 是否在某处进行了描
  • 从 SUDS 中的 SOAP 响应中提取 Cookie

    我必须使用具有多种服务的 API 所有这些都需要来自下面的身份验证的 JSESSION cookie 然而 当我调用下一个服务时 它不会保留 cookie 因此会拒绝它们 from suds client import Client url
  • 从函数在 python 3 中创建全局变量

    我想知道为什么在函数结束后我无法访问变量 variable for raw data 代码是这样的 def htmlfrom Website URL import urllib request response urllib request
  • python 中“重载”函数的最佳方法? [复制]

    这个问题在这里已经有答案了 我正在尝试在 python 中做这样的事情 def foo x y do something at position x y def foo pos foo pos x pos y 所以我想根据我提供的参数数量调
  • 如何使用 Matplotlib 可视化标量二维数据?

    所以我有一个网格网格 矩阵 X 和 Y 以及标量数据 矩阵 Z 我需要将其可视化 最好是一些 2D 图像 在各点处带有颜色 显示 Z 值 我做了一些研究 但没有找到任何能完全满足我想要的效果的东西 pyplot imshow Z 看起来不错
  • 如何从 Anaconda 更新 Pandas 以及最后是否可以使用 eclipse

    我已经使用以下文档通过 Anaconda 安装了 Python http www kevinsheppard com images 0 09 Python introduction pdf http www kevinsheppard co
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种
  • 基于 Web 请求在 Airflow 上运行作业

    我想知道是否可以在通过 HTTP 收到请求时执行气流任务 我对 Airflow 的调度部分不感兴趣 我只是想用它来代替芹菜 因此 示例操作如下所示 用户提交一份表格 请求某些报告 后端接收请求并向用户发送请求已收到的通知 然后后端使用 Ai
  • python:日志记录:我们可以向记录器添加多个过滤器吗?考虑哪一个

    我试图了解 Python 日志记录中的多个过滤器 一个在配置中定义 另一个在代码中定义 如何工作 我正在开发一个 Django 项目 下面是我在 settings py 中的记录器配置 我的目标是switch on and switch o
  • 如何从 Pandas 数据框函数调用中回顾之前的行?

    我正在研究 回测交易系统 我有一个包含 OHLC 数据的 Pandas 数据框 并添加了几个计算列 https stackoverflow com questions 12376863 adding calculated columns t

随机推荐

  • ActiveRecord 的哈希数组

    ActiveRecord Rails 4 0 支持 PostgreSQL Hstore 和数组数据类型 因此哈希数组理论上是可能的 但我的实现抛出 PG InvalidTextRepresentation ERROR malformed a
  • 无法更新 Matlab 中的类定义

    我在使用 Matlab 时遇到了一个令人恼火的问题 并且先前的回答不幸的是 显然同样的问题对我没有帮助 我很抱歉这个问题相当长 你需要相当多的信息来重现这个问题 我试图尽可能地修剪它 问题是这样的 无论我做什么 在我使用过一个类之后我都不能
  • JFrame - 使用 JComponent 和 MouseListener 进行鼠标单击

    有2个班级 public class MainClass public static void main String args JFrame frame new JFrame Component mouseClick new MyComp
  • 为什么不完整的类型不能转换为 void?

    为什么下面的代码会出现以下错误 为什么类型需要完整才能转换为void struct Incomplete class Class virtual void foo Incomplete incomplete void incomplete
  • git push heroku master - 没有错误消息,但更改未显示在网络应用程序上

    安装 devise gem 在我的网络应用程序上创建用户后 我的更改没有出现在实时应用程序上 我相信我在终端中运行了正确的代码 我正在学习一个月的 Rails 课程 git add git commit am message git pus
  • 如何使 TabBar 在 TabWidget 上水平居中

    这是一个简短的例子 可以解释我想要什么 代替 TAB 1 TAB 2 Tab 3 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX i desire XXXXXXXXXXXXXXXXXX TAB 1 TAB 2 Ta
  • 实体框架 ObjectContext -> 对本机 DBMS 的原始 SQL 调用

    我有一个使用 ADO NET 实体框架 VS2008 版本 而不是更新 更酷的版本 的应用程序 我需要能够调用底层 DBMS 它是 postgres 以便调用该实体的一些 SQL框架不支持 有没有办法从实体框架 ObjectContext
  • SQL 将处理后的 id 添加到用逗号分隔的单个单元格

    我有以下 sql 查询来了解它的作用 请阅读下面的描述 select catalogid numitems allitems numitems ignoreditems from select i catalogid sum case wh
  • 按标记名过滤 logcat 中的输出

    我试图按标签名称过滤来自真实设备 不是模拟器 的 logcat 输出 但我收到的所有消息都是垃圾邮件 我只想从浏览器读取消息 应该类似于 浏览器 或 网络工具包 但是这不起作用 这是我得到的 用这个 adb logcat s TAGNAME
  • Azure 长响应时间瓶颈?

    如何诊断 Azure 中的性能 响应时间 瓶颈 我在 Azure 上有一个 NET Core 网站 其中包含一项 Web 应用服务和一个 SQL 数据库 我已经设置了负载测试并通过云部署它来访问网站 负载测试代理的配置属性是 4 cores
  • 范围报告未给出有关并行执行的正确报告

    记者类 Java package POM Classes import com aventstack extentreports AnalysisStrategy import com aventstack extentreports Ex
  • 如何将相对 PIDL 转换为绝对 PIDL?

    我想用SHGetFileInfo要获取Windows控制面板图标 我使用Shell来获取Windows控制面板 代码 var psfDeskTop IShellFolder psfWork IShellFolder pidworkDir P
  • 如何确保 TFS 客户端安装了最新版本的自定义签入策略?

    我们实施了自定义签入策略 并为我们的一个 TFS 项目选择了它 如果 TFS 客户端未安装该策略 TFS 将显示一条错误消息以及安装说明 这一切都很好 但是 当出现新版本的入住政策时 我们会遇到问题 TFS 似乎只强制执行策略名称 而不强制
  • uitextfield隐藏键盘?

    在 iPhone 上 当我按下uitextfield我不想弹出键盘 我想要同样的行为 只是根本没有键盘 当用户按下时如何隐藏 关闭键盘uitextfield 如果您想要完全相同的行为 无需键盘 请尝试 textfield inputView
  • OpenCV:同态滤波器

    我想使用同态滤波器来处理水下图像 我尝试用互联网上找到的代码对其进行编码 但我总是有一个黑色图像 我尝试标准化我的结果 但没有成功 这是我的功能 void HomomorphicFilter butterworth homomorphic
  • 在分类变量图表中显示百分比而不是计数

    我正在绘制一个分类变量 而不是显示每个类别值的计数 我正在寻找一种方法来获得ggplot显示该类别中值的百分比 当然 可以使用计算出的百分比创建另一个变量并绘制该变量 但我必须执行数十次 并且我希望通过一个命令来实现这一目标 我正在尝试类似
  • “href”代表什么? [复制]

    这个问题在这里已经有答案了 写了几年 html 之后 我意识到我真的不知道为什么href属性被命名 href The HTML推荐并没有阐明这个问题 该属性指定 Web 资源的位置 从而定义当前元素 源锚点 与该属性定义的目标锚点之间的链接
  • 在 Node.js 中获取资源组的访问控制列表 (IAM)

    我正在使用 Node js 与 Azure 交互 例如创建资源组 const ResourceManagementClient require azure arm resource createResourceGroup location
  • 分析在 apache 中运行的 PHP

    我想知道在 apache 上运行的应用程序正在调用哪些函数以及每个请求花费的时间 有没有任何工具或任何其他方式可以获取这些数据 我还想知道每个函数花费了多少时间 应用程序正在运行 无法停止 所以我需要获取运行环境本身的详细信息 提前致谢 最
  • 如何使用 Python 将 scipy.signal.spectrogram 反转为音频?

    I have import librosa from scipy import signal import scipy io wavfile as sf samples sample rate sf read args file npers