【问题标题】:How to save a file from wave and sounddevice?如何从波形和声音设备中保存文件?
【发布时间】:2021-10-30 02:17:52
【问题描述】:

有人编写了一个脚本,应该记录一个波形文件并将其发送到一个电子邮件地址。

我想保存文件,而不是通过电子邮件地址发送。

代码如下:

import sounddevice as sd
import wave

fs = 44100
seconds = 60
obj = wave.open('sound.wav', 'w')
obj.setnchannels(1)
obj.setsampwidth(2)
obj.setframerate(fs)
myrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=2)
obj.writeframesraw(myrecording)
sd.wait()

启动脚本后,我有一个空的波形文件。 有什么东西可以保存文件或类似obj.save(r'XX')的东西吗?

【问题讨论】:

  • 你忘记关闭文件了(obj.close())
  • 你有没有看过the docs?它特别推荐使用with 语句,以便自动关闭文件...
  • 没有必要投射int(seconds * fs),因为secondsfs 本身已经是int。另外,如果可能,请发布原始代码(发送电子邮件的代码)。

标签: python wav wave python-sounddevice


【解决方案1】:

你需要关闭wave对象

import sounddevice as sd
import wave

fs = 44100
seconds = 60
obj = wave.open('sound.wav', 'w')
obj.setnchannels(1)
obj.setsampwidth(2)
obj.setframerate(fs)
myrecording = sd.rec(int(seconds * fs), samplerate=fs, channels=2)
obj.writeframesraw(myrecording)
sd.wait()
obj.close()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多