import openai import sounddevice as sd import audiofile as af from scipy.io.wavfile import write from gtts import gTTS import multiprocessing import pyttsx3 import keyboard def say(text): p = multiprocessing.Process(target=pyttsx3.speak, args=(text,)) p.start() while p.is_alive(): if keyboard.is_pressed('enter'): p.terminate() else: continue p.join() def record_audio(filename, sec, sr = 44100): audio = sd.rec(int(sec * sr), samplerate=sr, channels=2, blocking=False) sd.wait() write(filename, sr, audio) def record_audio_manual(filename, sr = 44100): input(" ** Press enter to start recording **") audio = sd.rec(int(10 * sr), samplerate=sr, channels=2) input(" ** Press enter to stop recording **") sd.stop() write(filename, sr, audio) def play_audio(filename): signal, sr = af.read(filename) sd.play(signal, sr) def transcribe_audio(filename): audio_file= open(filename, "rb") transcript = openai.Audio.transcribe("whisper-1", audio_file) audio_file.close() return transcript def translate_audio(filename): audio_file= open(filename, "rb") translation = openai.Audio.translate("whisper-1", audio_file) audio_file.close() return translation def save_text_as_audio(text, audio_filename): myobj = gTTS(text=text, lang='en', slow=False) myobj.save(audio_filename)