Python制作一个超赞的录音机

  来来来,做一个简单的录音机,新手都能学会的那种。
  之前我用python的pyaudio库只实现实现了录音功能,那段代码对我们有编程基础的人来说简直不要太好用,直接在列表里输入我们需要的文件名,就可以开始愉快的录音了,但是这需要修改我们的代码,而且形式单一,只能通过修改代码来决定一次录几条音、以及文件的名称。对于没有编程基础的人来说使用有些过于不友好了,保存的文件名也是不能一步到位,看不懂源代码的人不能一次就保存想要的文件名。
  为了对用户更加友好,我们对代码进行了优化,加入了更多的input来与使用者互动,这次他们无需修改源代码就能直接为这一次生成的录音文件起名字。并且增加了播放功能。直接输入文件名,python就会调用系统播放器自动播放录制好的音频文件,如果播放之后对本次录制的效果不满意,再次输入相同的文件名进行录制,新录制的音频会自动覆盖老的音频。我们引入了playsound库来实现播放的功能,该库在cmd中直接pip即可安装。接下来我们看修改后的代码是什么样的呢?

源代码:

from playsound import playsound
import threading
import pyaudio
import waveclass RecordThread(threading.Thread):def __init__(self, audiofile='record.wav'):threading.Thread.__init__(self)self.bRecord = Trueself.audiofile = audiofileself.chunk = 1024self.format = pyaudio.paInt16self.channels = 1 #单通道self.rate = 32000 #采样率为32000def run(self):audio = pyaudio.PyAudio()wavfile = wave.open(self.audiofile, 'wb')#打开文件,用二进制写模式wavfile.setnchannels(self.channels)wavfile.setsampwidth(audio.get_sample_size(self.format))wavfile.setframerate(self.rate)wavstream = audio.open(format=self.format, channels=self.channels,rate=self.rate,input=True,frames_per_buffer=self.chunk)while self.bRecord:wavfile.writeframes(wavstream.read(self.chunk))#停止数据流wavstream.stop_stream()#文件写完之后跳出wavstream.close()#不要忘记关闭文件哦audio.terminate()#到这里就终止啦def stoprecord(self):self.bRecord = Falsedef main1():li = []x = input('请输入文件名')li.append(x)record = {x}RECORDS.append(record)for i in li:file_name = i + '.wav'audio_record = RecordThread(file_name)audio_record.start()#开始录音key = input("请按回车键结束录音,本次创建文件名" + i + ".wav")audio_record.stoprecord()#停止录音,调用参数变成False结束循环def play1():h = input('请输入音频的文件名')playsound(h)def main():print('='*30)print('1.开始录音')print('2.播放录音')print('3.退出')print('='*30)while True:option = input("请输入选项:")if option == '1':main1()elif option == '2':play1()elif option == '3':  breakelse:print("请输入正确的选项")
main()

  我们运行之后可以看到,现在就是没有编程基础的人也可以很轻松的使用我们的这段代码了。在我们选择功能2之后,输入对应的音频文件的名称电脑就会自动播放。
在这里插入图片描述
  嗯,大家可以看到,非常的好用~
  转载自:滑稽研究所
  相关文章,请关注我吧!
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部