ANALYSIS OF VOICE AND FM MASKING PROTOTYPE - Tokyo Office (Recorded 03 July, 2006)
Contents
- Spectrogram of Voice Recording
- Remarks on the Spectrum
- Masking Noise Generation
- Comments
- Addition of noise to voice
- More Examples with different combinations
- 2. Just a Band on 250
- 3. Just a Band at 350
- 4. Just a Band at 500
- 5. Combination
- 6. Combination (just 250 and 500)
- 7. Combination (just 250 and 350)
clear all close all %Path to save the sounds for html links pathsounds = '~/WWW/yamaha/documentation/sounds/'; %ext_jConv; %This is just a script to extract the part to analyse %comment this line out after first extraction.
Spectrogram of Voice Recording
This is a small excerpt of the voice recorded in the hallway at the Tokyo office.
[y,fs,nbits]=wavread('~/yamaha/scripts/mnoise/jConv_adjacent_07dir1.wav'); figure spectrogram(y,2^9,[],2^11,fs,'yaxis'); title('Spectrogram, Japaneese voice, source in the corridor, Tokyo Office') [S,F,T,P] = spectrogram(y,2^10,[],2^11,fs,'yaxis'); %set(gca,'YScale','log'); wavwrite(y,fs,[pathsounds 'jp_clean.wav'])
You can listen to the sound here. NOTE: The volume is very low.
http://ccrma.stanford.edu/~jcaceres/yamaha/documentation/sounds/jp_clean.wav
Remarks on the Spectrum
Almost all the Energy is concentrated bellow 600~700 Hz. All the rest seems to be filtered out by the wall. The lowest region (where the pitch information is located) has three close bands at around 100, 350, and 650 Hz.
Masking Noise Generation
For different center frequencies, the critical band is computed using the Moore's formula (ebr).
% For center 250 Hz fc = 250; fm = 4; amp = fc*0.05; delf = ebr(fc); dur = length(y)/fs; [b,a] = bpdiir(fc,delf,fs); %design IIR filter design %freqz(b,a) noisefm1 = noisefm(fs,b,a,dur,fm,amp); %FM modulation clear b, a; % For center 350 Hz fc = 350; fm = 3; amp = fc*0.03; delf = ebr(fc); dur = length(y)/fs; [b,a] = bpdiir(fc,delf,fs); %design IIR filter design noisefm2 = noisefm(fs,b,a,dur,fm,amp); %FM modulation clear b, a; % For center 500 Hz fc = 500; fm = 5; amp = fc*0.02; delf = ebr(fc); dur = length(y)/fs; [b,a] = bpdiir(fc,delf,fs); %design IIR filter design noisefm3 = noisefm(fs,b,a,dur,fm,amp); %FM modulation clear b, a;
Comments
The last frequency 500Hz seems to be key in eliminating all the voice, when used toguether with 250 and 300 Hz.
Addition of noise to voice
total_noise = 5*noisefm1' + 2*noisefm2' + 0.5*noisefm3'; total = y + total_noise; figure spectrogram(total,2^9,[],2^11,fs,'yaxis'); title('Spectrogram of the FM modulated Filtered Noise') wavwrite(total,fs,[pathsounds 'jp_fm1.wav'])
http://ccrma.stanford.edu/~jcaceres/yamaha/documentation/sounds/jp_fm1.wav
More Examples with different combinations
2. Just a Band on 250
fc1=250; fm1=2; amp_mod1=0.03; amp1=5; fc2=350; fm2=4; amp_mod2=0.03; amp2=0; fc3=500; fm3=4; amp_mod3=0.03; amp3=0; total = fmnoise3(y,fs,fc1,fm1,amp_mod1,amp1,... fc2,fm2,amp_mod2,amp2,... fc3,fm3,amp_mod3,amp3); wavwrite(total,fs,[pathsounds 'jp_fm2.wav'])
Error using ==> evalin Undefined command/function 'fmnoise3'.
http://ccrma.stanford.edu/~jcaceres/yamaha/documentation/sounds/jp_fm2.wav
3. Just a Band at 350
fc1=250; fm1=4; amp_mod1=0.03; amp1=0; fc2=350; fm2=3; amp_mod2=0.06; amp2=2; fc3=500; fm3=4; amp_mod3=0.03; amp3=0; total = fmnoise3(y,fs,fc1,fm1,amp_mod1,amp1,... fc2,fm2,amp_mod2,amp2,... fc3,fm3,amp_mod3,amp3); wavwrite(total,fs,[pathsounds 'jp_fm3.wav'])
http://ccrma.stanford.edu/~jcaceres/yamaha/documentation/sounds/jp_fm3.wav
4. Just a Band at 500
fc1=250; fm1=4; amp_mod1=0.03; amp1=0; fc2=350; fm2=4; amp_mod2=0.03; amp2=0; fc3=500; fm3=4; amp_mod3=0.03; amp3=0.5; total = fmnoise3(y,fs,fc1,fm1,amp_mod1,amp1,... fc2,fm2,amp_mod2,amp2,... fc3,fm3,amp_mod3,amp3); wavwrite(total,fs,[pathsounds 'jp_fm4.wav'])
http://ccrma.stanford.edu/~jcaceres/yamaha/documentation/sounds/jp_fm4.wav
5. Combination
fc1=250; fm1=5; amp_mod1=0.06; amp1=5; fc2=350; fm2=4; amp_mod2=0.04; amp2=2; fc3=500; fm3=2; amp_mod3=0.02; amp3=0.5; total = fmnoise3(y,fs,fc1,fm1,amp_mod1,amp1,... fc2,fm2,amp_mod2,amp2,... fc3,fm3,amp_mod3,amp3); wavwrite(total,fs,[pathsounds 'jp_fm5.wav'])
http://ccrma.stanford.edu/~jcaceres/yamaha/documentation/sounds/jp_fm5.wav
6. Combination (just 250 and 500)
fc1=250; fm1=5; amp_mod1=0.06; amp1=5; fc2=350; fm2=4; amp_mod2=0.04; amp2=0; fc3=500; fm3=2; amp_mod3=0.02; amp3=0.5; total = fmnoise3(y,fs,fc1,fm1,amp_mod1,amp1,... fc2,fm2,amp_mod2,amp2,... fc3,fm3,amp_mod3,amp3); wavwrite(total,fs,[pathsounds 'jp_fm6.wav'])
http://ccrma.stanford.edu/~jcaceres/yamaha/documentation/sounds/jp_fm6.wav
7. Combination (just 250 and 350)
fc1=250; fm1=5; amp_mod1=0.06; amp1=5; fc2=350; fm2=4; amp_mod2=0.04; amp2=2; fc3=500; fm3=2; amp_mod3=0.02; amp3=0; total = fmnoise3(y,fs,fc1,fm1,amp_mod1,amp1,... fc2,fm2,amp_mod2,amp2,... fc3,fm3,amp_mod3,amp3); wavwrite(total,fs,[pathsounds 'jp_fm7.wav'])
http://ccrma.stanford.edu/~jcaceres/yamaha/documentation/sounds/jp_fm7.wav