aboutsummaryrefslogtreecommitdiff
path: root/octave/plvoicing.m
diff options
context:
space:
mode:
Diffstat (limited to 'octave/plvoicing.m')
-rw-r--r--octave/plvoicing.m89
1 files changed, 0 insertions, 89 deletions
diff --git a/octave/plvoicing.m b/octave/plvoicing.m
deleted file mode 100644
index a531747..0000000
--- a/octave/plvoicing.m
+++ /dev/null
@@ -1,89 +0,0 @@
-% Copyright David Rowe 2009
-% This program is distributed under the terms of the GNU General Public License
-% Version 2
-%
-% Plot voicing information from sample and dump files.
-%
-% samfilename is the raw source file, e.g. "../raw/hts1a.raw"
-% samname is the dumpfile prefix, e.g. "../src/hts1a"
-%
-% There is a 160 sample (two frame delay) from the when a sample
-% enters the input buffer until it is at the centre of the analysis window
-
-function plvoicing(samfilename, samname, start_f, end_f, pngname)
-
- fs=fopen(samfilename,"rb");
- s=fread(fs,Inf,"short");
-
- snr_name = strcat(samname,"_snr.txt");
- snr = load(snr_name);
- model_name = strcat(samname,"_model.txt");
- model = load(model_name);
-
- Wo = model((start_f+1):end_f,1);
- F0 = Wo*4000/pi;
- dF0 = F0(1:length(Wo)-1) - F0(2:length(Wo));
-
- % work out LP and HP energy
-
- for f=(start_f+1):end_f
- L = model(f,2);
- Am = model(f,3:(L+2));
- L2 = floor(L/2);
- elow = Am(1:L2) * Am(1:L2)';
- ehigh = Am(L2:L) * Am(L2:L)';
- erat(f-(start_f+1)+1) = 10*log10(elow/ehigh);
- endfor
-
- figure(1);
- clf;
- sp = s((start_f-2)*80:(end_f-2)*80);
- plot(sp);
- hold on;
- vhigh = snr((start_f+1):end_f) > 7;
- vlow = snr((start_f+1):end_f) > 4;
-
- % test correction based on erat
-
- vlowadj = vlow;
-
- for f=1:length(erat)-1
- if (vlow(f) == 0)
- if (erat(f) > 10)
- vlowadj(f) = 1;
- endif
- endif
- if (vlow(f) == 1)
- if (erat(f) < -10)
- vlowadj(f) = 0;
- endif
- if (abs(dF0(f)) > 15)
- vlowadj(f) = 0;
- endif
- endif
- endfor
-
- x = 1:(end_f-start_f);
- plot(x*80,snr((start_f+1):end_f)*1000,';SNRdB x 1000;g+');
- plot(x*80,-8000 + vhigh*2000,';7dB thresh;g');
- plot(x*80,-11000 + vlowadj*2000,';vlow with corr;g');
- plot(x*80,erat*1000,';elow/ehigh in dB;r');
- plot(x*80,-14000 + vlow*2000,';4dB thresh;r');
- hold off;
- grid
- if (nargin == 5)
- print(pngname, "-dpng", "-S500,500")
- endif
-
- figure(2)
- Wo = model((start_f+1):end_f,1);
- F0 = Wo*4000/pi;
- dF0 = F0(1:length(Wo)-1) - F0(2:length(Wo));
- %plot(dF0,'+--')
- %hold on;
- %plot([ 1 length(dF0) ], [10 10] ,'r')
- %plot([ 1 length(dF0) ], [-10 -10] ,'r')
- %axis([1 length(dF0) -50 50])
- %hold off;
- plot(F0,'+--')
-endfunction