使用Python构建录音机 GUI
先决条件: Python GUI – tkinter,使用Python创建录音机
Python提供了各种工具,可用于各种目的。其中一个目的是录音。可以使用sounddevice模块来完成。这个录制的文件可以使用soundfile模块保存
需要的模块
- Sounddevice : sounddevice 模块为 PortAudio 库提供绑定和一些方便的函数来播放和记录包含音频信号的 NumPy 数组。要安装此类型,请在终端中输入以下命令。
pip install sounddevice
- SoundFile: SoundFile 可以读写声音文件。要安装此类型,请在终端中输入以下命令。
pip install SoundFile
方法:
- 导入所需的模块。
- 设置频率和持续时间。
- 在NumPy数组中记录语音数据,可以使用rec()。
- 使用 soundfile.write() 存储到文件中。
执行:
第 1 步:导入模块
import sounddevice as sd
import soundfile as sf
第二步:设置频率和时长,在NumPy数组中记录语音数据,可以使用rec()
fs = 48000
duration = 5
myrecording = sd.rec(int(duration * fs), samplerate=fs,
channels=2)
注: fs 是录音的采样率(通常为 44100 或 44800 Hz)
第 3 步:现在将这些数组存储到音频文件中。
# Save as FLAC file at correct sampling rate
sf.write('My_Audio_file.flac', myrecording, fs)
让我们为此创建一个 GUI 应用程序。我们将使用 Tkinter 来做同样的事情。
Python3
import sounddevice as sd
import soundfile as sf
from tkinter import *
def Voice_rec():
fs = 48000
# seconds
duration = 5
myrecording = sd.rec(int(duration * fs),
samplerate=fs, channels=2)
sd.wait()
# Save as FLAC file at correct sampling rate
return sf.write('my_Audio_file.flac', myrecording, fs)
master = Tk()
Label(master, text=" Voice Recoder : "
).grid(row=0, sticky=W, rowspan=5)
b = Button(master, text="Start", command=Voice_rec)
b.grid(row=0, column=2, columnspan=2, rowspan=2,
padx=5, pady=5)
mainloop()
输出: