Как добавить комфортный шум в файл wav с Java? - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь написать код в Java, который берет простой wav-файл и добавляет к нему комфортный шум . конечный результат должен быть один WAV-файл, который является моим смешанным между двумя звуками вместе. (не объединять). Я нашел скрипт python, который делает что-то подобное, но я хотел бы сделать это на нативном Java. Я знаю, что использование кода c g729b окажет аналогичное влияние, но, к сожалению, это также выходит за рамки моих возможностей, используя java.

. Буду признателен за любые предложения о том, как добавить Комфортный шум с java для моего исходного wav-файла.

Это сценарий python, который я нашел, но если есть лучший способ, у меня нет проблем с этим:

import sys
import scipy.io.wavfile as wav
from scipy.signal import lfilter
from numpy.random import randn

source_wav_file = sys.argv[1]
print("source_wav_file is:", source_wav_file)



def add_noise(inputFileName):
    #Audio augumentation using generated comfort noise

    #Parameters:
    #inputFileName : Audio wave file name, with no '.wav' extension
    #   accepts only PCM, 32bit Float, 8kHz, mono (as in enrollment channel)

    #Writes processed wave file.
    #This is a prototype.
    #No exceptions are handled.



    # input only PCM, 32bit Float, 8kHz, mono (as in enrollment channel)
    (rate, audio) = wav.read(inputFileName)
    audio = audio / 32767.0  # convert audio back to float
    noise = 7 / 32768.0 * randn(len(audio))  # geneate comfort noise
    b = [0.98]  # design lowpasIIR filter numeator
    a = [1, -b[0]]  # design lowpasIIR filter denominator
    noise = lfilter(b, a, noise)  # apply lowpass filter to white noise
    audio = audio + noise  # mix audio with noise
    out_wav_file = inputFileName + "_out.wav"
    wav.write(out_wav_file, 8000, audio)  # save the output wave file
    print("out wav file is: ", out_wav_file)
    return

add_noise(source_wav_file)  # add comfort noise to the file "audio.wav", and write "audio_out.wav"


...