Я пытаюсь написать код в 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"