コード例 #1
0
ファイル: gen_audio.py プロジェクト: rp755/CS4970W-Capstone
def generate_utilities_read_file_audio(filename):
    duration_in_ms = 20

    # generate noise
    noise = WhiteNoise(sample_rate=RATE, bit_depth=NUM_BYTES *
                       BITS_PER_BYTE).to_audio_segment(duration=duration_in_ms)

    # save
    noise.export(filename, format="wav")

    return noise._data
コード例 #2
0
def add_audio(fn, d):
    print("ADDING SOUND...")
    sound = WhiteNoise().to_audio_segment(duration=d)
    namesound = define_name("whiteNoise", ".mp3")
    sound.export(namesound, format="mp3")
    video = movie(fn)
    sonido = music(namesound)
    result = video + sonido
    namevid = define_name("noiseVid", ".mp4")
    result.save(namevid)
    os.remove(fn)
    os.remove(namesound)
コード例 #3
0
def padding(wav, white_noise_duration):
    # print("WAV FILE: " + wav)
    for x in white_noise_duration:
        if x == 0:
            wav_files = []
            padded_fname = wav.rsplit(".", 1)[0]
            # print("PADDED NAME: " + padded_fname)
            silence_duration = max(white_noise_duration)
            # print(padded_fname+"_whitenoise.wav")

            # convert sampling rate, bits per sample, audio channel
            subprocess.call([
                "ffmpeg",
                "-i",
                wav,
                "-ar",
                "44100",
                "-ac",
                "2",
                padded_fname + "_converted.wav",
                "-y",
            ])

            # white noise duration should be a list e.g [0,1]
            # generate white noise wav file
            wn = WhiteNoise().to_audio_segment(duration=silence_duration *
                                               1000)
            wn.export(
                padded_fname + "_whitenoise.wav",
                format="wav",
                parameters=["-ar", "16000"],
            )

            # stitch white noise wav file to specific audio wav file
            # before
            new_wav_before = AudioSegment.from_wav(
                padded_fname +
                "_whitenoise.wav") + AudioSegment.from_wav(padded_fname +
                                                           "_converted.wav")
            new_wav_before.export(
                padded_fname + "_padded" + "_" + str(white_noise_duration[1]) +
                "_" + str(white_noise_duration[0]) + ".wav",
                format="wav",
                parameters=["-ar", "16000"],
            )

            # after
            new_wav_after = AudioSegment.from_wav(
                padded_fname +
                "_converted.wav") + AudioSegment.from_wav(padded_fname +
                                                          "_whitenoise.wav")
            new_wav_after.export(
                padded_fname + "_padded" + "_" + str(white_noise_duration[0]) +
                "_" + str(white_noise_duration[1]) + ".wav",
                format="wav",
                parameters=["-ar", "16000"],
            )

            # remove white noise wav file
            os.remove(padded_fname + "_whitenoise.wav")
            os.remove(padded_fname + "_converted.wav")
            wav_files.append(padded_fname + "_padded" + "_" +
                             str(white_noise_duration[1]) + "_" +
                             str(white_noise_duration[0]) + ".wav")
            wav_files.append(padded_fname + "_padded" + "_" +
                             str(white_noise_duration[0]) + "_" +
                             str(white_noise_duration[1]) + ".wav")
            break
        else:
            wav_files = []
            padded_fname = (wav.rsplit(".", 1)[0]).split("/")[-1]
            # print("PADDED FILENAME: " + padded_fname)
            path = (wav.rsplit(".", 1)[0]).rsplit("/", 1)[0]
            # print("PATH: "+ path)
            fn = (wav.rsplit(".", 1)[0]).rsplit("/", 1)[1]
            # print("FILENAME: " + fn)

            # white noise duration should be a list e.g [0,1]
            # generate white noise wav file
            # wn_0 = AudioSegment.silent(duration=white_noise_duration[0] * 1000)
            wn_0 = WhiteNoise().to_audio_segment(
                duration=white_noise_duration[0] * 1000)
            wn_0.export(wav + "_whitenoise_0.wav",
                        format="wav",
                        parameters=["-ar", "16000"])

            # wn_1 = AudioSegment.silent(duration=white_noise_duration[1] * 1000)
            wn_1 = WhiteNoise().to_audio_segment(
                duration=white_noise_duration[1] * 1000)
            wn_1.export(wav + "_whitenoise_1.wav",
                        format="wav",
                        parameters=["-ar", "16000"])

            # stitch white noise wav file to specific audio wav file
            new_wav = (AudioSegment.from_wav(wav + "_whitenoise_0.wav") +
                       AudioSegment.from_wav(wav) +
                       AudioSegment.from_wav(wav + "_whitenoise_1.wav"))
            new_wav.export(
                path + "/" + padded_fname + "_padded" + "_" +
                str(white_noise_duration[0]) + "_" +
                str(white_noise_duration[1]) + ".wav",
                format="wav",
                parameters=["-ar", "16000"],
            )

            # after
            new_wav_reverse = (
                AudioSegment.from_wav(wav + "_whitenoise_1.wav") +
                AudioSegment.from_wav(wav) +
                AudioSegment.from_wav(wav + "_whitenoise_0.wav"))
            new_wav_reverse.export(
                path + "/" + padded_fname + "_padded" + "_" +
                str(white_noise_duration[1]) + "_" +
                str(white_noise_duration[0]) + ".wav",
                format="wav",
                parameters=["-ar", "16000"],
            )

            # remove white noise wav file
            os.remove(wav + "_whitenoise_0.wav")
            os.remove(wav + "_whitenoise_1.wav")

            wav_files.append(path + "/" + padded_fname + "_padded" + "_" +
                             str(white_noise_duration[0]) + "_" +
                             str(white_noise_duration[1]) + ".wav")
            wav_files.append(path + "/" + padded_fname + "_padded" + "_" +
                             str(white_noise_duration[1]) + "_" +
                             str(white_noise_duration[0]) + ".wav")

            # If adding to one folder, specify the path of folder!
            # new_wav.export("output_/"+fn+"_padded"+"_"+str(white_noise_duration[0])+"_"+str(white_noise_duration[1])+".wav", format="wav", parameters=["-ar", "16000"])
            # new_wav_reverse.export("output_/"+fn+"_padded"+"_"+str(white_noise_duration[1])+"_"+str(white_noise_duration[0])+".wav", format="wav", parameters=["-ar", "16000"])

            break
    return wav_files