当前位置: 首页 > 面试题库 >

如何用Python编写立体声WAV文件?

陆博易
2023-03-14
问题内容

以下代码将频率为400Hz的简单正弦写入单声道WAV文件。为了产生 立体声 WAV文件,应如何更改此代码。第二个频道应处于不同的频率。

import math
import wave
import struct

freq = 440.0
data_size = 40000
fname = "WaveTest.wav"
frate = 11025.0  # framerate as a float
amp = 64000.0     # multiplier for amplitude

sine_list_x = []
for x in range(data_size):
    sine_list_x.append(math.sin(2*math.pi*freq*(x/frate)))

wav_file = wave.open(fname, "w")

nchannels = 1
sampwidth = 2
framerate = int(frate)
nframes = data_size
comptype = "NONE"
compname = "not compressed"

wav_file.setparams((nchannels, sampwidth, framerate, nframes,
    comptype, compname))

for s in sine_list_x:
    # write the audio frames to file
    wav_file.writeframes(struct.pack('h', int(s*amp/2)))

wav_file.close()

问题答案:

sine_list_y使用另一个频率/频道set来构建一个并行列表nchannels=2,并在输出循环for s, t in zip(sine_list_x, sine_list_y):中将其用作标题子句,并使用两个writeframes调用来创建主体-
一个用于s,一个用于t。IOW,文件中两个通道的对应帧“交替”。

例如参见本页面的所有可能的WAV文件格式的全面描述,我引用:

多通道数字音频样本存储为隔行波形数据,这仅意味着在前进到下一个样本之前,通过循环浏览每个通道的音频样本来存储多通道(例如立体声和环绕声)波形文件的音频样本时间。这样做是为了可以在读取整个文件之前播放或流式传输音频文件。当从磁盘播放大文件(可能不完全适合内存)或通过Internet流式传输文件时,这非常方便。下图中的值将按照在“值”列(从上到下)中列出的顺序存储在Wave文件中。

下表清楚地显示了通道的样本向左,向右,向左,向右,…



 类似资料:
  • 本文向大家介绍使用Python读写WAV文件(波形),包括了使用Python读写WAV文件(波形)的使用技巧和注意事项,需要的朋友参考一下 Python标准库中的wave模块是音频WAV格式的便捷接口。该模块中的功能可以将原始格式的音频数据写入对象之类的文件,并读取WAV文件的属性。 如同内置方法一样,文件以“写入”或读取模式打开,但具有wave模块中的功能 wave.open() 此功能打开一个

  • 本文向大家介绍如何用python在Selenium中编写文本文件?,包括了如何用python在Selenium中编写文本文件?的使用技巧和注意事项,需要的朋友参考一下 通过首先创建一个txt文件并在其中包含内容,我们可以使用python在Selenium中编写文本文件。 首先,我们需要以写模式打开文件,并以文本文件的位置路径作为参数。有多种读取方法可以执行这些操作。 write()–将字符串写在一

  • 问题内容: 我尝试pygame播放wav文件,如下所示: 但是它改变了声音,我不知道为什么!我阅读了此链接解决方案,但无法解决播放wave文件的问题! 对于此解决方案,我不知道应该导入什么? 对于这个解决方案/ dev / dsp在新版本的linux中不存在: 而当我尝试pyglet它给我这个错误: 问题答案: 您可以使用PyAudio。我的Linux上的一个示例可以正常工作:

  • 问题内容: 首先,这是用于家庭作业或…项目。 我很难理解如何在Java项目中将声音数据波绘制到图形上的想法。我必须使用UI完全从头开始进行此分配,因此基本上要制作.wav文件编辑器。 我遇到的主要问题是将声音数据放入要绘制的图形中。 目前,我正在随机绘制一组值。 到目前为止,我有一个微型程序正在运行并验证wav文件,使其实际上是wav文件。 我正在使用FileInputStream读取它并进行验证

  • 问题内容: 我正在使用Python在Python中生成XML文档,但是在转换为纯文本时,该函数不包含XML声明。 我需要我的字符串包含以下XML声明: 但是,似乎没有任何记录的方式来执行此操作。 有没有合适的方法来呈现XML声明? 问题答案: 我很惊讶地发现似乎没有办法。但是,您可以用来将XML文档写入伪文件: 看到这个问题。即使那样,我认为如果不自己编写,就无法获得“独立”属性。

  • 这篇指南的目的是教你如何书写高质量的TypeScript声明文件。 在这篇指南里,我们假设你对TypeScript已经有了基本的了解。 如果没有,请先阅读TypeScript手册 来了解一些基本知识,尤其是类型和命名空间部分。 这篇指南被分成了以下章节。 结构 结构一节将帮助你了解常见库的格式以及如何为每种格式书写正确的声明文件。 如果你在编辑一个已经存在的文件,那么你可能不需要阅读此章节。 如果