python - Numpy:Wav 列出然后再返回创建垃圾
问题描述
我正在使用 Python 3.7,目前正在开发一个解决方案,该解决方案需要我将 WAV 文件转换为 Numpy 数组,然后转换为列表,然后再转换为数组,最后再次编写为 WAV 文件。今天早些时候,它能够转换然后重新转换而没有问题。但是,它当前返回的是可收听但完全静态的 WAV 文件。
import numpy as np
import scipy.io.wavfile as wavfile
...
rate, data = wavfile.read(os.path.join(F_IN_FOLDER, f))
work = data.tolist()
out = np.array(work, dtype=np.float32)
wavfile.write(os.path.join(F_IN_FOLDER, f), rate, out)
这段代码的目的是,作为一个列表,我可以使 WAV 文件的部分静音,然后覆盖原始文件。我对 WAV 文件和 Numpy 库没有经验,如果有更有效的方法来解决这个问题,我有兴趣学习它。
解决方案
我同意@NilsWerner - 你应该能够将所有事情都作为 numpy 数组进行,并且比将其作为列表处理要快得多。我不确定您所说的“沉默”是什么意思,但假设这涉及将零写入数组的特定部分,那么您可以执行以下操作:
# create an array of 1's (my sample test data)
a = np.ones(10)
# zero out a specific range of indices using standard numpy slice notation.
a[5:8] = 0
# check the result
print(a)
然后回来
[1. 1. 1. 1. 1. 0. 0. 0. 1. 1.]
查看numpy slices的 numpy 文档和相关的 scipy 文档scipy indexing。
推荐阅读
- php - Htaccess 重写分页规则
- php - 在 Laravel 中的 BelongsTo 关系上获取 NULL
- mysql - 左连接表和内连接表不显示零(空)值
- sql-server - 尝试从单个表 (SQL) 创建 6 个分段的数据“组”
- javascript - 如何获取csv文件的每一行
- javascript - 我的数组没有将图片加载到 html
- delphi - “字节”和“字节”有什么区别?
- elasticsearch - 如何访问安装在 GCP Compute Engine 实例上的 Elastic Search?
- tensorflow - 声明嵌入层时出现 ResourceExhaustedError (Keras)
- cortex-m - 如何将四个 Cortex M0 物理地址映射到单个数组以进行位碰撞?