У меня есть скрипт Python, который просматривает аудиофайлы внутри компьютера и связывает их с функцией воспроизведения звука, которая срабатывает при нажатии определенной клавиши на клавиатуре. Это прекрасно работает, но я хочу иметь возможность записывать любой звук, который я воспроизводил, нажимая клавишу, в аудиофайл, такой как .wav или даже .ogg.
Я использую pygame.mixer для загрузки и воспроизведения аудиофайлов.
Я прочитал много учебников в Интернете, но примеры, как правило, касаются записи звука с микрофона. В моем случае мне нужно записать звук, который был произведен внутри скрипта.
Import pygame
pygame.mixer.init(frequency=44100, size=-16, channels=2, buffer=512)
pygame.init()
# 1
# keypress event 'd'
def key1(event):
global audio_file_name1
if audio_file_name1: # play sound if just not an empty string
sound1 = pygame.mixer.Sound(audio_file_name1)
sound1.play()
# Browser button 1
def browse1():
global audio_file_name1
audio_file_name1 = filedialog.askopenfilename(filetypes=(("Audio Files", ".wav .ogg"), ("All Files", "*.*")))
# playing button 1
def playsound1():
global audio_file_name1
if audio_file_name1: # play sound if just not an empty string
sound1 = pygame.mixer.Sound(audio_file_name1)
sound1.play()
# 2
# keypress event 'a'
def key2(event):
global audio_file_name2
if audio_file_name2: # play sound if just not an empty string
sound2 = pygame.mixer.Sound(audio_file_name2)
sound2.play()
# Browser button 2
def browse2():
global audio_file_name2
audio_file_name2 = filedialog.askopenfilename(filetypes=(("Audio Files", ".wav .ogg"), ("All Files", "*.*")))
# playing button 2
def playsound2():
# we will also use the audio_file_name global variable
global audio_file_name2
if audio_file_name2: # play sound if just not an empty string
sound2 = pygame.mixer.Sound(audio_file_name2)
sound2.play()
root = Tk()
frame = Frame(root)
audio_file_name1 = ''
# browse button 1
b1 = Button(root, text='open file', bg="yellow", command=browse1) # browser button 1
b1.pack(anchor=CENTER)
# playing sound button 1
p1 = Button(root, text='Som1', command=playsound1) # playsound1
#p1.pack(anchor=W)
# browse button 2
b2 = Button(root, text='open file', bg="light green", command=browse2) # browser button 2
b2.pack(anchor=CENTER)
# playing sound button 2
p2 = Button(root, text='Som2', command=playsound2) # playsound2
#p2.pack(anchor=W)
root.bind('d', key1)
root.bind('a', key2)
root.mainloop()
Теперь я не могу записать звуки, которые я играл. я хочу иметь возможность записывать звуки в аудиофайле .wav или .ogg
Спасибо за любую помощь !!