NAME = libcodec2
AM_CPPFLAGS = $(AM_CFLAGS)
-bin_PROGRAMS = genres genlsp extract vqtrain vqtrainjnd tnlp tinterp tquant tcodec2
+bin_PROGRAMS = genres genlsp extract vqtrain vqtrainjnd tnlp tinterp tquant tcodec2 vq_train_jvm scalarlsptest
genres_SOURCES = genres.c ../src/lpc.c
vqtrainjnd_LDADD = $(lib_LTLIBRARIES)
vqtrainjnd_LDFLAGS = $(LIBS)
-CODEBOOKS = ../src/codebook.c ../src/codebookd.c ../src/codebookvq.c ../src/codebookjnd.c ../src/codebookdt.c
+vq_train_jvm_SOURCES = vq_train_jvm.c
+vq_train_jvm_LDADD = $(lib_LTLIBRARIES)
+vq_train_jvm_LDFLAGS = $(LIBS)
+
+CODEBOOKS = ../src/codebook.c ../src/codebookd.c ../src/codebookvq.c ../src/codebookjnd.c ../src/codebookdt.c ../src/codebookjvm.c
tnlp_SOURCES = tnlp.c ../src/sine.c ../src/nlp.c ../src/fft.c ../src/kiss_fft.c ../src/dump.c
tnlp_LDADD = $(lib_LTLIBRARIES)
tcodec2_LDADD = $(lib_LTLIBRARIES)
tcodec2_LDFLAGS = $(LIBS)
+scalarlsptest_SOURCES = scalarlsptest.c ../src/quantise.c ../src/lpc.c ../src/lsp.c ../src/dump.c ../src/fft.c ../src/kiss_fft.c $(CODEBOOKS)
+scalarlsptest_LDADD = $(lib_LTLIBRARIES)
+scalarlsptest_LDFLAGS = $(LIBS)
+
host_triplet = @host@
bin_PROGRAMS = genres$(EXEEXT) genlsp$(EXEEXT) extract$(EXEEXT) \
vqtrain$(EXEEXT) vqtrainjnd$(EXEEXT) tnlp$(EXEEXT) \
- tinterp$(EXEEXT) tquant$(EXEEXT) tcodec2$(EXEEXT)
+ tinterp$(EXEEXT) tquant$(EXEEXT) tcodec2$(EXEEXT) \
+ vq_train_jvm$(EXEEXT) scalarlsptest$(EXEEXT)
subdir = unittest
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
genres_DEPENDENCIES =
am__objects_1 = codebook.$(OBJEXT) codebookd.$(OBJEXT) \
codebookvq.$(OBJEXT) codebookjnd.$(OBJEXT) \
- codebookdt.$(OBJEXT)
+ codebookdt.$(OBJEXT) codebookjvm.$(OBJEXT)
+am_scalarlsptest_OBJECTS = scalarlsptest.$(OBJEXT) quantise.$(OBJEXT) \
+ lpc.$(OBJEXT) lsp.$(OBJEXT) dump.$(OBJEXT) fft.$(OBJEXT) \
+ kiss_fft.$(OBJEXT) $(am__objects_1)
+scalarlsptest_OBJECTS = $(am_scalarlsptest_OBJECTS)
+scalarlsptest_DEPENDENCIES =
am_tcodec2_OBJECTS = tcodec2.$(OBJEXT) quantise.$(OBJEXT) \
lpc.$(OBJEXT) lsp.$(OBJEXT) dump.$(OBJEXT) fft.$(OBJEXT) \
kiss_fft.$(OBJEXT) codec2.$(OBJEXT) sine.$(OBJEXT) \
$(am__objects_1)
tquant_OBJECTS = $(am_tquant_OBJECTS)
tquant_DEPENDENCIES =
+am_vq_train_jvm_OBJECTS = vq_train_jvm.$(OBJEXT)
+vq_train_jvm_OBJECTS = $(am_vq_train_jvm_OBJECTS)
+vq_train_jvm_DEPENDENCIES =
am_vqtrain_OBJECTS = vqtrain.$(OBJEXT)
vqtrain_OBJECTS = $(am_vqtrain_OBJECTS)
vqtrain_DEPENDENCIES =
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(extract_SOURCES) $(genlsp_SOURCES) $(genres_SOURCES) \
- $(tcodec2_SOURCES) $(tinterp_SOURCES) $(tnlp_SOURCES) \
- $(tquant_SOURCES) $(vqtrain_SOURCES) $(vqtrainjnd_SOURCES)
+ $(scalarlsptest_SOURCES) $(tcodec2_SOURCES) $(tinterp_SOURCES) \
+ $(tnlp_SOURCES) $(tquant_SOURCES) $(vq_train_jvm_SOURCES) \
+ $(vqtrain_SOURCES) $(vqtrainjnd_SOURCES)
DIST_SOURCES = $(extract_SOURCES) $(genlsp_SOURCES) $(genres_SOURCES) \
- $(tcodec2_SOURCES) $(tinterp_SOURCES) $(tnlp_SOURCES) \
- $(tquant_SOURCES) $(vqtrain_SOURCES) $(vqtrainjnd_SOURCES)
+ $(scalarlsptest_SOURCES) $(tcodec2_SOURCES) $(tinterp_SOURCES) \
+ $(tnlp_SOURCES) $(tquant_SOURCES) $(vq_train_jvm_SOURCES) \
+ $(vqtrain_SOURCES) $(vqtrainjnd_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
vqtrainjnd_SOURCES = vqtrainjnd.c
vqtrainjnd_LDADD = $(lib_LTLIBRARIES)
vqtrainjnd_LDFLAGS = $(LIBS)
-CODEBOOKS = ../src/codebook.c ../src/codebookd.c ../src/codebookvq.c ../src/codebookjnd.c ../src/codebookdt.c
+vq_train_jvm_SOURCES = vq_train_jvm.c
+vq_train_jvm_LDADD = $(lib_LTLIBRARIES)
+vq_train_jvm_LDFLAGS = $(LIBS)
+CODEBOOKS = ../src/codebook.c ../src/codebookd.c ../src/codebookvq.c ../src/codebookjnd.c ../src/codebookdt.c ../src/codebookjvm.c
tnlp_SOURCES = tnlp.c ../src/sine.c ../src/nlp.c ../src/fft.c ../src/kiss_fft.c ../src/dump.c
tnlp_LDADD = $(lib_LTLIBRARIES)
tnlp_LDFLAGS = $(LIBS)
tcodec2_LDADD = $(lib_LTLIBRARIES)
tcodec2_LDFLAGS = $(LIBS)
+scalarlsptest_SOURCES = scalarlsptest.c ../src/quantise.c ../src/lpc.c ../src/lsp.c ../src/dump.c ../src/fft.c ../src/kiss_fft.c $(CODEBOOKS)
+scalarlsptest_LDADD = $(lib_LTLIBRARIES)
+scalarlsptest_LDFLAGS = $(LIBS)
all: all-am
.SUFFIXES:
genres$(EXEEXT): $(genres_OBJECTS) $(genres_DEPENDENCIES)
@rm -f genres$(EXEEXT)
$(LINK) $(genres_LDFLAGS) $(genres_OBJECTS) $(genres_LDADD) $(LIBS)
+scalarlsptest$(EXEEXT): $(scalarlsptest_OBJECTS) $(scalarlsptest_DEPENDENCIES)
+ @rm -f scalarlsptest$(EXEEXT)
+ $(LINK) $(scalarlsptest_LDFLAGS) $(scalarlsptest_OBJECTS) $(scalarlsptest_LDADD) $(LIBS)
tcodec2$(EXEEXT): $(tcodec2_OBJECTS) $(tcodec2_DEPENDENCIES)
@rm -f tcodec2$(EXEEXT)
$(LINK) $(tcodec2_LDFLAGS) $(tcodec2_OBJECTS) $(tcodec2_LDADD) $(LIBS)
tquant$(EXEEXT): $(tquant_OBJECTS) $(tquant_DEPENDENCIES)
@rm -f tquant$(EXEEXT)
$(LINK) $(tquant_LDFLAGS) $(tquant_OBJECTS) $(tquant_LDADD) $(LIBS)
+vq_train_jvm$(EXEEXT): $(vq_train_jvm_OBJECTS) $(vq_train_jvm_DEPENDENCIES)
+ @rm -f vq_train_jvm$(EXEEXT)
+ $(LINK) $(vq_train_jvm_LDFLAGS) $(vq_train_jvm_OBJECTS) $(vq_train_jvm_LDADD) $(LIBS)
vqtrain$(EXEEXT): $(vqtrain_OBJECTS) $(vqtrain_DEPENDENCIES)
@rm -f vqtrain$(EXEEXT)
$(LINK) $(vqtrain_LDFLAGS) $(vqtrain_OBJECTS) $(vqtrain_LDADD) $(LIBS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codebookd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codebookdt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codebookjnd.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codebookjvm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codebookvq.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codec2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/phase.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/postfilter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quantise.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scalarlsptest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sine.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tcodec2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tinterp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tnlp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tquant.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vq_train_jvm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vqtrain.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vqtrainjnd.Po@am__quote@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o kiss_fft.obj `if test -f '../src/kiss_fft.c'; then $(CYGPATH_W) '../src/kiss_fft.c'; else $(CYGPATH_W) '$(srcdir)/../src/kiss_fft.c'; fi`
+codebook.o: ../src/codebook.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebook.o -MD -MP -MF "$(DEPDIR)/codebook.Tpo" -c -o codebook.o `test -f '../src/codebook.c' || echo '$(srcdir)/'`../src/codebook.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebook.Tpo" "$(DEPDIR)/codebook.Po"; else rm -f "$(DEPDIR)/codebook.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebook.c' object='codebook.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebook.o `test -f '../src/codebook.c' || echo '$(srcdir)/'`../src/codebook.c
+
+codebook.obj: ../src/codebook.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebook.obj -MD -MP -MF "$(DEPDIR)/codebook.Tpo" -c -o codebook.obj `if test -f '../src/codebook.c'; then $(CYGPATH_W) '../src/codebook.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebook.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebook.Tpo" "$(DEPDIR)/codebook.Po"; else rm -f "$(DEPDIR)/codebook.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebook.c' object='codebook.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebook.obj `if test -f '../src/codebook.c'; then $(CYGPATH_W) '../src/codebook.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebook.c'; fi`
+
+codebookd.o: ../src/codebookd.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookd.o -MD -MP -MF "$(DEPDIR)/codebookd.Tpo" -c -o codebookd.o `test -f '../src/codebookd.c' || echo '$(srcdir)/'`../src/codebookd.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookd.Tpo" "$(DEPDIR)/codebookd.Po"; else rm -f "$(DEPDIR)/codebookd.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookd.c' object='codebookd.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookd.o `test -f '../src/codebookd.c' || echo '$(srcdir)/'`../src/codebookd.c
+
+codebookd.obj: ../src/codebookd.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookd.obj -MD -MP -MF "$(DEPDIR)/codebookd.Tpo" -c -o codebookd.obj `if test -f '../src/codebookd.c'; then $(CYGPATH_W) '../src/codebookd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookd.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookd.Tpo" "$(DEPDIR)/codebookd.Po"; else rm -f "$(DEPDIR)/codebookd.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookd.c' object='codebookd.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookd.obj `if test -f '../src/codebookd.c'; then $(CYGPATH_W) '../src/codebookd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookd.c'; fi`
+
+codebookvq.o: ../src/codebookvq.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookvq.o -MD -MP -MF "$(DEPDIR)/codebookvq.Tpo" -c -o codebookvq.o `test -f '../src/codebookvq.c' || echo '$(srcdir)/'`../src/codebookvq.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookvq.Tpo" "$(DEPDIR)/codebookvq.Po"; else rm -f "$(DEPDIR)/codebookvq.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookvq.c' object='codebookvq.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookvq.o `test -f '../src/codebookvq.c' || echo '$(srcdir)/'`../src/codebookvq.c
+
+codebookvq.obj: ../src/codebookvq.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookvq.obj -MD -MP -MF "$(DEPDIR)/codebookvq.Tpo" -c -o codebookvq.obj `if test -f '../src/codebookvq.c'; then $(CYGPATH_W) '../src/codebookvq.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookvq.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookvq.Tpo" "$(DEPDIR)/codebookvq.Po"; else rm -f "$(DEPDIR)/codebookvq.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookvq.c' object='codebookvq.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookvq.obj `if test -f '../src/codebookvq.c'; then $(CYGPATH_W) '../src/codebookvq.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookvq.c'; fi`
+
+codebookjnd.o: ../src/codebookjnd.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookjnd.o -MD -MP -MF "$(DEPDIR)/codebookjnd.Tpo" -c -o codebookjnd.o `test -f '../src/codebookjnd.c' || echo '$(srcdir)/'`../src/codebookjnd.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookjnd.Tpo" "$(DEPDIR)/codebookjnd.Po"; else rm -f "$(DEPDIR)/codebookjnd.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookjnd.c' object='codebookjnd.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookjnd.o `test -f '../src/codebookjnd.c' || echo '$(srcdir)/'`../src/codebookjnd.c
+
+codebookjnd.obj: ../src/codebookjnd.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookjnd.obj -MD -MP -MF "$(DEPDIR)/codebookjnd.Tpo" -c -o codebookjnd.obj `if test -f '../src/codebookjnd.c'; then $(CYGPATH_W) '../src/codebookjnd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookjnd.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookjnd.Tpo" "$(DEPDIR)/codebookjnd.Po"; else rm -f "$(DEPDIR)/codebookjnd.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookjnd.c' object='codebookjnd.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookjnd.obj `if test -f '../src/codebookjnd.c'; then $(CYGPATH_W) '../src/codebookjnd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookjnd.c'; fi`
+
+codebookdt.o: ../src/codebookdt.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookdt.o -MD -MP -MF "$(DEPDIR)/codebookdt.Tpo" -c -o codebookdt.o `test -f '../src/codebookdt.c' || echo '$(srcdir)/'`../src/codebookdt.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookdt.Tpo" "$(DEPDIR)/codebookdt.Po"; else rm -f "$(DEPDIR)/codebookdt.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookdt.c' object='codebookdt.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookdt.o `test -f '../src/codebookdt.c' || echo '$(srcdir)/'`../src/codebookdt.c
+
+codebookdt.obj: ../src/codebookdt.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookdt.obj -MD -MP -MF "$(DEPDIR)/codebookdt.Tpo" -c -o codebookdt.obj `if test -f '../src/codebookdt.c'; then $(CYGPATH_W) '../src/codebookdt.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookdt.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookdt.Tpo" "$(DEPDIR)/codebookdt.Po"; else rm -f "$(DEPDIR)/codebookdt.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookdt.c' object='codebookdt.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookdt.obj `if test -f '../src/codebookdt.c'; then $(CYGPATH_W) '../src/codebookdt.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookdt.c'; fi`
+
+codebookjvm.o: ../src/codebookjvm.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookjvm.o -MD -MP -MF "$(DEPDIR)/codebookjvm.Tpo" -c -o codebookjvm.o `test -f '../src/codebookjvm.c' || echo '$(srcdir)/'`../src/codebookjvm.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookjvm.Tpo" "$(DEPDIR)/codebookjvm.Po"; else rm -f "$(DEPDIR)/codebookjvm.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookjvm.c' object='codebookjvm.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookjvm.o `test -f '../src/codebookjvm.c' || echo '$(srcdir)/'`../src/codebookjvm.c
+
+codebookjvm.obj: ../src/codebookjvm.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookjvm.obj -MD -MP -MF "$(DEPDIR)/codebookjvm.Tpo" -c -o codebookjvm.obj `if test -f '../src/codebookjvm.c'; then $(CYGPATH_W) '../src/codebookjvm.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookjvm.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookjvm.Tpo" "$(DEPDIR)/codebookjvm.Po"; else rm -f "$(DEPDIR)/codebookjvm.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookjvm.c' object='codebookjvm.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookjvm.obj `if test -f '../src/codebookjvm.c'; then $(CYGPATH_W) '../src/codebookjvm.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookjvm.c'; fi`
+
codec2.o: ../src/codec2.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codec2.o -MD -MP -MF "$(DEPDIR)/codec2.Tpo" -c -o codec2.o `test -f '../src/codec2.c' || echo '$(srcdir)/'`../src/codec2.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codec2.Tpo" "$(DEPDIR)/codec2.Po"; else rm -f "$(DEPDIR)/codec2.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pack.obj `if test -f '../src/pack.c'; then $(CYGPATH_W) '../src/pack.c'; else $(CYGPATH_W) '$(srcdir)/../src/pack.c'; fi`
-codebook.o: ../src/codebook.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebook.o -MD -MP -MF "$(DEPDIR)/codebook.Tpo" -c -o codebook.o `test -f '../src/codebook.c' || echo '$(srcdir)/'`../src/codebook.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebook.Tpo" "$(DEPDIR)/codebook.Po"; else rm -f "$(DEPDIR)/codebook.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebook.c' object='codebook.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebook.o `test -f '../src/codebook.c' || echo '$(srcdir)/'`../src/codebook.c
-
-codebook.obj: ../src/codebook.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebook.obj -MD -MP -MF "$(DEPDIR)/codebook.Tpo" -c -o codebook.obj `if test -f '../src/codebook.c'; then $(CYGPATH_W) '../src/codebook.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebook.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebook.Tpo" "$(DEPDIR)/codebook.Po"; else rm -f "$(DEPDIR)/codebook.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebook.c' object='codebook.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebook.obj `if test -f '../src/codebook.c'; then $(CYGPATH_W) '../src/codebook.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebook.c'; fi`
-
-codebookd.o: ../src/codebookd.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookd.o -MD -MP -MF "$(DEPDIR)/codebookd.Tpo" -c -o codebookd.o `test -f '../src/codebookd.c' || echo '$(srcdir)/'`../src/codebookd.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookd.Tpo" "$(DEPDIR)/codebookd.Po"; else rm -f "$(DEPDIR)/codebookd.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookd.c' object='codebookd.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookd.o `test -f '../src/codebookd.c' || echo '$(srcdir)/'`../src/codebookd.c
-
-codebookd.obj: ../src/codebookd.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookd.obj -MD -MP -MF "$(DEPDIR)/codebookd.Tpo" -c -o codebookd.obj `if test -f '../src/codebookd.c'; then $(CYGPATH_W) '../src/codebookd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookd.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookd.Tpo" "$(DEPDIR)/codebookd.Po"; else rm -f "$(DEPDIR)/codebookd.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookd.c' object='codebookd.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookd.obj `if test -f '../src/codebookd.c'; then $(CYGPATH_W) '../src/codebookd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookd.c'; fi`
-
-codebookvq.o: ../src/codebookvq.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookvq.o -MD -MP -MF "$(DEPDIR)/codebookvq.Tpo" -c -o codebookvq.o `test -f '../src/codebookvq.c' || echo '$(srcdir)/'`../src/codebookvq.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookvq.Tpo" "$(DEPDIR)/codebookvq.Po"; else rm -f "$(DEPDIR)/codebookvq.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookvq.c' object='codebookvq.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookvq.o `test -f '../src/codebookvq.c' || echo '$(srcdir)/'`../src/codebookvq.c
-
-codebookvq.obj: ../src/codebookvq.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookvq.obj -MD -MP -MF "$(DEPDIR)/codebookvq.Tpo" -c -o codebookvq.obj `if test -f '../src/codebookvq.c'; then $(CYGPATH_W) '../src/codebookvq.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookvq.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookvq.Tpo" "$(DEPDIR)/codebookvq.Po"; else rm -f "$(DEPDIR)/codebookvq.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookvq.c' object='codebookvq.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookvq.obj `if test -f '../src/codebookvq.c'; then $(CYGPATH_W) '../src/codebookvq.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookvq.c'; fi`
-
-codebookjnd.o: ../src/codebookjnd.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookjnd.o -MD -MP -MF "$(DEPDIR)/codebookjnd.Tpo" -c -o codebookjnd.o `test -f '../src/codebookjnd.c' || echo '$(srcdir)/'`../src/codebookjnd.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookjnd.Tpo" "$(DEPDIR)/codebookjnd.Po"; else rm -f "$(DEPDIR)/codebookjnd.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookjnd.c' object='codebookjnd.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookjnd.o `test -f '../src/codebookjnd.c' || echo '$(srcdir)/'`../src/codebookjnd.c
-
-codebookjnd.obj: ../src/codebookjnd.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookjnd.obj -MD -MP -MF "$(DEPDIR)/codebookjnd.Tpo" -c -o codebookjnd.obj `if test -f '../src/codebookjnd.c'; then $(CYGPATH_W) '../src/codebookjnd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookjnd.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookjnd.Tpo" "$(DEPDIR)/codebookjnd.Po"; else rm -f "$(DEPDIR)/codebookjnd.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookjnd.c' object='codebookjnd.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookjnd.obj `if test -f '../src/codebookjnd.c'; then $(CYGPATH_W) '../src/codebookjnd.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookjnd.c'; fi`
-
-codebookdt.o: ../src/codebookdt.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookdt.o -MD -MP -MF "$(DEPDIR)/codebookdt.Tpo" -c -o codebookdt.o `test -f '../src/codebookdt.c' || echo '$(srcdir)/'`../src/codebookdt.c; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookdt.Tpo" "$(DEPDIR)/codebookdt.Po"; else rm -f "$(DEPDIR)/codebookdt.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookdt.c' object='codebookdt.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookdt.o `test -f '../src/codebookdt.c' || echo '$(srcdir)/'`../src/codebookdt.c
-
-codebookdt.obj: ../src/codebookdt.c
-@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT codebookdt.obj -MD -MP -MF "$(DEPDIR)/codebookdt.Tpo" -c -o codebookdt.obj `if test -f '../src/codebookdt.c'; then $(CYGPATH_W) '../src/codebookdt.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookdt.c'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/codebookdt.Tpo" "$(DEPDIR)/codebookdt.Po"; else rm -f "$(DEPDIR)/codebookdt.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../src/codebookdt.c' object='codebookdt.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o codebookdt.obj `if test -f '../src/codebookdt.c'; then $(CYGPATH_W) '../src/codebookdt.c'; else $(CYGPATH_W) '$(srcdir)/../src/codebookdt.c'; fi`
-
mostlyclean-libtool:
-rm -f *.lo
lines = 0;
while(!feof(ftext)) {
scan_line(ftext, buf, en);
- fwrite(&buf[st-1], sizeof(float), en-st+1, ffloat);
- printf("\r%ld lines",lines++);
+ if (!feof(ftext)) {
+ fwrite(&buf[st-1], sizeof(float), en-st+1, ffloat);
+ printf("\r%ld lines",lines++);
+ }
}
printf("\n");
+++ /dev/null
-/*---------------------------------------------------------------------------*\
-
- FILE........: lsptest.c
- AUTHOR......: David Rowe
- DATE CREATED: 24/8/09
-
- Test Speech LPC to LSP conversion and quantisation.
-
-\*---------------------------------------------------------------------------*/
-
-/*
- Copyright (C) 2009 David Rowe
-
- All rights reserved.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 2, as
- published by the Free Software Foundation. This program is
- distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <lpc.h>
-#include <lsp.h>
-#include <sd.h>
-
-#define N 160
-#define P 10
-
-#define LPC_FLOOR 0.0002 /* autocorrelation floor */
-#define LSP_DELTA1 0.2 /* grid spacing for LSP root searches */
-#define NDFT 256 /* DFT size for SD calculation */
-
-/* Speex lag window */
-
-const float lag_window[11] = {
- 1.00000, 0.99716, 0.98869, 0.97474, 0.95554, 0.93140, 0.90273, 0.86998,
- 0.83367, 0.79434, 0.75258
-};
-
-/*---------------------------------------------------------------------------*\
-
- find_aks_for_lsp()
-
- This function takes a frame of samples, and determines the linear
- prediction coefficients for that frame of samples. Modified version of
- find_aks from lpc.c to include autocorrelation noise floor and lag window
- to match Speex processing steps prior to LSP conversion.
-
-\*---------------------------------------------------------------------------*/
-
-void find_aks_for_lsp(
- float Sn[], /* Nsam samples with order sample memory */
- float a[], /* order+1 LPCs with first coeff 1.0 */
- int Nsam, /* number of input speech samples */
- int order, /* order of the LPC analysis */
- float *E /* residual energy */
-)
-{
- float Wn[N]; /* windowed frame of Nsam speech samples */
- float R[P+1]; /* order+1 autocorrelation values of Sn[] */
- int i;
-
- hanning_window(Sn,Wn,Nsam);
-
- autocorrelate(Wn,R,Nsam,order);
- R[0] += LPC_FLOOR;
- assert(order == 10); /* lag window only defined for order == 10 */
- for(i=0; i<=order; i++)
- R[i] *= lag_window[i];
- levinson_durbin(R,a,order);
-
- *E = 0.0;
- for(i=0; i<=order; i++)
- *E += a[i]*R[i];
- if (*E < 0.0)
- *E = 1E-12;
-}
-
-/*---------------------------------------------------------------------------*\
-
- MAIN
-
-\*---------------------------------------------------------------------------*/
-
-int main(int argc, char *argv[])
-{
- FILE *fin; /* input speech files */
- short buf[N]; /* buffer of 16 bit speech samples */
- float Sn[P+N]; /* input speech samples */
- float E;
- float ak[P+1]; /* LP coeffs */
- float ak_[P+1]; /* quantised LP coeffs */
- float lsp[P];
- float lsp_[P]; /* quantised LSPs */
- int roots; /* number of LSP roots found */
- int frames; /* frames processed so far */
- int i; /* loop variables */
-
- SpeexBits bits;
-
- float sd; /* SD for this frame */
- float totsd; /* accumulated SD so far */
- int gt2,gt4; /* number of frames > 2 and 4 dB SD */
- int unstables; /* number of unstable LSP frames */
-
- if (argc < 2) {
- printf("usage: %s InputFile\n", argv[0]);
- exit(0);
- }
-
- /* Open files */
-
- if ((fin = fopen(argv[1],"rb")) == NULL) {
- printf("Error opening input file: %s\n",argv[1]);
- exit(0);
- }
-
- /* Initialise */
-
- frames = 0;
- for(i=0; i<P; i++) {
- Sn[i] = 0.0;
- }
- ak_[0] = 1.0;
-
- speex_bits_init(&bits);
-
- totsd = 0.0;
- unstables = 0;
- gt2 = 0; gt4 = 0;
-
- /* Main loop */
-
- while( (fread(buf,sizeof(short),N,fin)) == N) {
- frames++;
- for(i=0; i<N; i++)
- Sn[P+i] = (float)buf[i];
-
- /* convert to LSP domain and back */
-
- find_aks(&Sn[P], ak, N, P, &E);
- roots = lpc_to_lsp(&ak[1], P , lsp, 10, LSP_DELTA1, NULL);
- if (roots == P) {
-
- speex_bits_reset(&bits);
- lsp_quant_lbr(lsp, lsp_, P, &bits);
- lsp_to_lpc(lsp_, &ak_[1], P, NULL);
-
- /* measure spectral distortion */
- sd = spectral_dist(ak, ak_, P, NDFT);
- if (sd > 2.0) gt2++;
- if (sd > 4.0) gt4++;
- totsd += sd;
- }
- else
- unstables++;
- }
-
- fclose(fin);
-
- printf("frames = %d Av sd = %3.2f dB", frames, totsd/frames);
- printf(" >2 dB %3.2f%% >4 dB %3.2f%% unstables: %d\n",gt2*100.0/frames,
- gt4*100.0/frames, unstables);
-
- return 0;
-}
-
--- /dev/null
+/*---------------------------------------------------------------------------*\
+
+ FILE........: scalarlsptest.c
+ AUTHOR......: David Rowe
+ DATE CREATED: 8/2/12
+
+ Test Scalar LSP quantiser, output variance of quantisation error.
+
+\*---------------------------------------------------------------------------*/
+
+/*
+ Copyright (C) 2012 David Rowe
+
+ All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 2, as
+ published by the Free Software Foundation. This program is
+ distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "defines.h"
+#include "quantise.h"
+
+/*---------------------------------------------------------------------------*\
+
+ MAIN
+
+\*---------------------------------------------------------------------------*/
+
+int main(int argc, char *argv[])
+{
+ FILE *ftrain; /* LSP training data text file */
+ float lsp[LPC_ORD]; /* LSP input vector in rads */
+ float lsp_hz[LPC_ORD]; /* LSP input vector in Hz */
+ int vectors; /* number LSP vectors processed */
+ int k,m; /* LSP vector order and codebook size */
+ int index;
+ float wt[1]; /* weighting (not used here for scalars) */
+ float *cb; /* LSP quantiser codebook */
+ int i, ret;
+ float se, total_se;
+
+ if (argc < 2) {
+ printf("usage: %s InputFile\n", argv[0]);
+ exit(0);
+ }
+
+ if ((ftrain = fopen(argv[1],"rt")) == NULL) {
+ printf("Error opening input file: %s\n",argv[1]);
+ exit(0);
+ }
+
+ total_se = 0.0;
+ vectors = 0;
+ wt[0] = 1.0;
+
+ /* Main loop */
+
+ while(!feof(ftrain)) {
+
+ /* Read LSP input vector speech */
+
+ for (i=0; i<LPC_ORD; i++) {
+ ret = fscanf(ftrain, "%f ", &lsp[i]);
+ }
+ vectors++;
+ if ((vectors % 1000) == 0)
+ printf("\r%d vectors", vectors);
+
+ /* convert from radians to Hz so we can use human readable
+ frequencies */
+
+ for(i=0; i<LPC_ORD; i++)
+ lsp_hz[i] = (4000.0/PI)*lsp[i];
+
+ /* simple uniform scalar quantisers */
+
+ for(i=0; i<LPC_ORD; i++) {
+ k = lsp_cb[i].k;
+ m = lsp_cb[i].m;
+ cb = lsp_cb[i].cb;
+ index = quantise(cb, &lsp_hz[i], wt, k, m, &total_se);
+ //printf("k %d m %d lsp[%d] %f %f se %f\n", k,m,i,lsp_hz[i], cb[index],se);
+ }
+ //printf("total se %f\n", total_se);
+ //exit(0);
+ }
+
+ fclose(ftrain);
+
+ printf("\n variance = %f\n", ((PI*PI)/(4000.0*4000.0))*total_se/vectors);
+
+ return 0;
+}
+
--- /dev/null
+/*---------------------------------------------------------------------------*\
+
+ FILE........: speexlsptest.c
+ AUTHOR......: David Rowe
+ DATE CREATED: 24/8/09
+
+ Test LPC to LSP conversion and quantisation using Speex LSP quantiser.
+
+\*---------------------------------------------------------------------------*/
+
+/*
+ Copyright (C) 2009 David Rowe
+
+ All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 2, as
+ published by the Free Software Foundation. This program is
+ distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <lpc.h>
+#include <lsp.h>
+#include <sd.h>
+
+#define N 160
+#define P 10
+
+#define LPC_FLOOR 0.0002 /* autocorrelation floor */
+#define LSP_DELTA1 0.2 /* grid spacing for LSP root searches */
+#define NDFT 256 /* DFT size for SD calculation */
+
+/* Speex lag window */
+
+const float lag_window[11] = {
+ 1.00000, 0.99716, 0.98869, 0.97474, 0.95554, 0.93140, 0.90273, 0.86998,
+ 0.83367, 0.79434, 0.75258
+};
+
+/*---------------------------------------------------------------------------*\
+
+ find_aks_for_lsp()
+
+ This function takes a frame of samples, and determines the linear
+ prediction coefficients for that frame of samples. Modified version of
+ find_aks from lpc.c to include autocorrelation noise floor and lag window
+ to match Speex processing steps prior to LSP conversion.
+
+\*---------------------------------------------------------------------------*/
+
+void find_aks_for_lsp(
+ float Sn[], /* Nsam samples with order sample memory */
+ float a[], /* order+1 LPCs with first coeff 1.0 */
+ int Nsam, /* number of input speech samples */
+ int order, /* order of the LPC analysis */
+ float *E /* residual energy */
+)
+{
+ float Wn[N]; /* windowed frame of Nsam speech samples */
+ float R[P+1]; /* order+1 autocorrelation values of Sn[] */
+ int i;
+
+ hanning_window(Sn,Wn,Nsam);
+
+ autocorrelate(Wn,R,Nsam,order);
+ R[0] += LPC_FLOOR;
+ assert(order == 10); /* lag window only defined for order == 10 */
+ for(i=0; i<=order; i++)
+ R[i] *= lag_window[i];
+ levinson_durbin(R,a,order);
+
+ *E = 0.0;
+ for(i=0; i<=order; i++)
+ *E += a[i]*R[i];
+ if (*E < 0.0)
+ *E = 1E-12;
+}
+
+/*---------------------------------------------------------------------------*\
+
+ MAIN
+
+\*---------------------------------------------------------------------------*/
+
+int main(int argc, char *argv[])
+{
+ FILE *fin; /* input speech files */
+ short buf[N]; /* buffer of 16 bit speech samples */
+ float Sn[P+N]; /* input speech samples */
+ float E;
+ float ak[P+1]; /* LP coeffs */
+ float ak_[P+1]; /* quantised LP coeffs */
+ float lsp[P];
+ float lsp_[P]; /* quantised LSPs */
+ int roots; /* number of LSP roots found */
+ int frames; /* frames processed so far */
+ int i; /* loop variables */
+
+ SpeexBits bits;
+
+ float sd; /* SD for this frame */
+ float totsd; /* accumulated SD so far */
+ int gt2,gt4; /* number of frames > 2 and 4 dB SD */
+ int unstables; /* number of unstable LSP frames */
+
+ if (argc < 2) {
+ printf("usage: %s InputFile\n", argv[0]);
+ exit(0);
+ }
+
+ /* Open files */
+
+ if ((fin = fopen(argv[1],"rb")) == NULL) {
+ printf("Error opening input file: %s\n",argv[1]);
+ exit(0);
+ }
+
+ /* Initialise */
+
+ frames = 0;
+ for(i=0; i<P; i++) {
+ Sn[i] = 0.0;
+ }
+ ak_[0] = 1.0;
+
+ speex_bits_init(&bits);
+
+ totsd = 0.0;
+ unstables = 0;
+ gt2 = 0; gt4 = 0;
+
+ /* Main loop */
+
+ while( (fread(buf,sizeof(short),N,fin)) == N) {
+ frames++;
+ for(i=0; i<N; i++)
+ Sn[P+i] = (float)buf[i];
+
+ /* convert to LSP domain and back */
+
+ find_aks(&Sn[P], ak, N, P, &E);
+ roots = lpc_to_lsp(&ak[1], P , lsp, 10, LSP_DELTA1, NULL);
+ if (roots == P) {
+
+ speex_bits_reset(&bits);
+ lsp_quant_lbr(lsp, lsp_, P, &bits);
+ lsp_to_lpc(lsp_, &ak_[1], P, NULL);
+
+ /* measure spectral distortion */
+ sd = spectral_dist(ak, ak_, P, NDFT);
+ if (sd > 2.0) gt2++;
+ if (sd > 4.0) gt4++;
+ totsd += sd;
+ }
+ else
+ unstables++;
+ }
+
+ fclose(fin);
+
+ printf("frames = %d Av sd = %3.2f dB", frames, totsd/frames);
+ printf(" >2 dB %3.2f%% >4 dB %3.2f%% unstables: %d\n",gt2*100.0/frames,
+ gt4*100.0/frames, unstables);
+
+ return 0;
+}
+
/* CODEC2 struct copies from codec2.c to help with testing */
-typedef struct {
- float Sn[M]; /* input speech */
- float w[M]; /* time domain hamming window */
- COMP W[FFT_ENC]; /* DFT of w[] */
- float Pn[2*N]; /* trapezoidal synthesis window */
- float Sn_[2*N]; /* synthesised speech */
- float prev_Wo; /* previous frame's pitch estimate */
- float ex_phase; /* excitation model phase track */
- float bg_est; /* background noise estimate for post filter */
- MODEL prev_model; /* model parameters from 20ms ago */
-} CODEC2;
-
-void analyse_one_frame(CODEC2 *c2, MODEL *model, short speech[]);
-void synthesise_one_frame(CODEC2 *c2, short speech[], MODEL *model, float ak[]);
+struct CODEC2 {
+ int mode;
+ float w[M]; /* time domain hamming window */
+ COMP W[FFT_ENC]; /* DFT of w[] */
+ float Pn[2*N]; /* trapezoidal synthesis window */
+ float Sn[M]; /* input speech */
+ float hpf_states[2]; /* high pass filter states */
+ void *nlp; /* pitch predictor states */
+ float Sn_[2*N]; /* synthesised output speech */
+ float ex_phase; /* excitation model phase track */
+ float bg_est; /* background noise estimate for post filter */
+ float prev_Wo; /* previous frame's pitch estimate */
+ MODEL prev_model; /* previous frame's model parameters */
+ float prev_lsps_[LPC_ORD]; /* previous frame's LSPs */
+ float prev_energy; /* previous frame's LPC energy */
+};
+
+void analyse_one_frame(struct CODEC2 *c2, MODEL *model, short speech[]);
+void synthesise_one_frame(struct CODEC2 *c2, short speech[], MODEL *model, float ak[]);
int test1()
{
FILE *fin, *fout;
short buf[N];
- void *c2;
- CODEC2 *c3;
+ struct CODEC2 *c2;
MODEL model;
float ak[LPC_ORD+1];
float lsps[LPC_ORD];
- c2 = codec2_create();
- c3 = (CODEC2*)c2;
+ c2 = codec2_create(CODEC2_MODE_2500);
fin = fopen("../raw/hts1a.raw", "rb");
assert(fin != NULL);
assert(fout != NULL);
while(fread(buf, sizeof(short), N, fin) == N) {
- analyse_one_frame(c3, &model, buf);
- speech_to_uq_lsps(lsps, ak, c3->Sn, c3->w, LPC_ORD);
- synthesise_one_frame(c3, buf, &model, ak);
+ analyse_one_frame(c2, &model, buf);
+ speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, LPC_ORD);
+ synthesise_one_frame(c2, buf, &model, ak);
fwrite(buf, sizeof(short), N, fout);
}
{
FILE *fin, *fout;
short buf[2*N];
- void *c2;
- CODEC2 *c3;
+ struct CODEC2 *c2;
MODEL model, model_interp;
float ak[LPC_ORD+1];
int voiced1, voiced2;
int lsp_indexes[LPC_ORD];
int energy_index;
int Wo_index;
- char bits[CODEC2_BITS_PER_FRAME];
+ char *bits;
int nbit;
int i;
float lsps[LPC_ORD];
float e;
- c2 = codec2_create();
- c3 = (CODEC2*)c2;
-
+ c2 = codec2_create(CODEC2_MODE_2500);
+ bits = (char*)malloc(codec2_bits_per_frame(c2));
+ assert(bits != NULL);
fin = fopen("../raw/hts1a.raw", "rb");
assert(fin != NULL);
fout = fopen("hts1a_test.raw", "wb");
while(fread(buf, sizeof(short), 2*N, fin) == 2*N) {
/* first 10ms analysis frame - we just want voicing */
- analyse_one_frame(c3, &model, buf);
+ analyse_one_frame(c2, &model, buf);
voiced1 = model.voiced;
/* second 10ms analysis frame */
- analyse_one_frame(c3, &model, &buf[N]);
+ analyse_one_frame(c2, &model, &buf[N]);
voiced2 = model.voiced;
Wo_index = encode_Wo(model.Wo);
- encode_amplitudes(lsp_indexes,
- &energy_index,
- &model,
- c3->Sn,
- c3->w);
+ e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, LPC_ORD);
+ encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD);
+ energy_index = encode_energy(e);
nbit = 0;
pack(bits, &nbit, Wo_index, WO_BITS);
for(i=0; i<LPC_ORD; i++) {
model.voiced = voiced2;
model_interp.voiced = voiced1;
- interpolate(&model_interp, &c3->prev_model, &model);
+ interpolate(&model_interp, &c2->prev_model, &model);
- synthesise_one_frame(c3, buf, &model_interp, ak);
- synthesise_one_frame(c3, &buf[N], &model, ak);
+ synthesise_one_frame(c2, buf, &model_interp, ak);
+ synthesise_one_frame(c2, &buf[N], &model, ak);
- memcpy(&c3->prev_model, &model, sizeof(MODEL));
+ memcpy(&c2->prev_model, &model, sizeof(MODEL));
fwrite(buf, sizeof(short), 2*N, fout);
}
+ free(bits);
codec2_destroy(c2);
fclose(fin);
FILE *fin, *fout, *fbits;
short buf1[2*N];
short buf2[2*N];
- char bits[CODEC2_BITS_PER_FRAME];
- void *c2;
+ char *bits;
+ struct CODEC2 *c2;
- c2 = codec2_create();
+ c2 = codec2_create(CODEC2_MODE_2500);
+ bits = (char*)malloc(codec2_bits_per_frame(c2));
fin = fopen("../raw/hts1a.raw", "rb");
assert(fin != NULL);
while(fread(buf1, sizeof(short), 2*N, fin) == 2*N) {
codec2_encode(c2, bits, buf1);
- fwrite(bits, sizeof(char), CODEC2_BITS_PER_FRAME, fbits);
+ fwrite(bits, sizeof(char), codec2_bits_per_frame(c2), fbits);
codec2_decode(c2, buf2, bits);
- fwrite(buf2, sizeof(short), CODEC2_SAMPLES_PER_FRAME, fout);
+ fwrite(buf2, sizeof(short), codec2_bits_per_frame(c2), fout);
}
+ free(bits);
codec2_destroy(c2);
fclose(fin);
for(i=0; i<levels; i++) {
indexes_in[lsp_number] = i;
- decode_lsps(lsp, indexes_in, LPC_ORD);
- encode_lsps(indexes_out, lsp,LPC_ORD);
+ decode_lsps_scalar(lsp, indexes_in, LPC_ORD);
+ encode_lsps_scalar(indexes_out, lsp,LPC_ORD);
if (indexes_in[lsp_number] != indexes_out[lsp_number]) {
printf("freq: %f index_in: %d index_out: %d\n",
lsp[lsp_number]+1, indexes_in[lsp_number],
for(i=0; i<LPC_ORD; i++)
indexes[i] = 0;
indexes[lsp_number] = 0;
- decode_lsps(lsp, indexes, LPC_ORD);
+ decode_lsps_scalar(lsp, indexes, LPC_ORD);
lowf = lsp[lsp_number];
indexes[lsp_number] = levels - 1;
- decode_lsps(lsp, indexes, LPC_ORD);
+ decode_lsps_scalar(lsp, indexes, LPC_ORD);
highf = lsp[lsp_number];
sprintf(s,"lsp%d_err.txt", lsp_number+1);
flsp = fopen(s, "wt");
for(f=lowf; f<highf; f +=(highf-lowf)/1000.0) {
lsp[lsp_number] = f;
- encode_lsps(indexes, lsp, LPC_ORD);
- decode_lsps(lsp, indexes, LPC_ORD);
+ encode_lsps_scalar(indexes, lsp, LPC_ORD);
+ decode_lsps_scalar(lsp, indexes, LPC_ORD);
error = f - lsp[lsp_number];
fprintf(flsp, "%f\n", error);
if (fabs(error) > max_error_rads) {
#include <math.h>
#define MIN(a,b) ((a)<(b)?(a):(b))
-#define COEF 0.70f
+#define COEF 0.00f
#define MAX_ENTRIES 16384
void compute_weights(const float *x, float *w, int ndim)
w[1]*=2;
}
-int find_nearest(const float *codebook, int nb_entries, float *x, int ndim)
+int find_nearest(const float *codebook, int nb_entries, float *x, int ndim, float *min_dist)
{
int i, j;
- float min_dist = 1e15;
int nearest = 0;
+ *min_dist = 1E15;
+
for (i=0;i<nb_entries;i++)
{
float dist=0;
for (j=0;j<ndim;j++)
dist += (x[j]-codebook[i*ndim+j])*(x[j]-codebook[i*ndim+j]);
- if (dist<min_dist)
+ if (dist<*min_dist)
{
- min_dist = dist;
+ *min_dist = dist;
nearest = i;
}
}
{
int i, n1, n2, n3;
float err[ndim], err2[ndim], err3[ndim];
- float w[ndim], w2[ndim], w3[ndim];
+ float w[ndim], w2[ndim], w3[ndim], min_dist;
w[0] = MIN(x[0], x[1]-x[0]);
for (i=1;i<ndim-1;i++)
for (i=0;i<ndim;i++)
err[i] = x[i]-COEF*xq[i];
- n1 = find_nearest(codebook1, nb_entries, err, ndim);
+ n1 = find_nearest(codebook1, nb_entries, err, ndim, &min_dist);
for (i=0;i<ndim;i++)
{
int i,j;
int count[nb_entries];
int nearest[nb_vectors];
-
+ float min_dist;
+ float total_min_dist = 0;
+
for (i=0;i<nb_entries;i++)
count[i] = 0;
for (i=0;i<nb_vectors;i++)
{
- nearest[i] = find_nearest(codebook, nb_entries, data+i*ndim, ndim);
+ nearest[i] = find_nearest(codebook, nb_entries, data+i*ndim, ndim, &min_dist);
+ total_min_dist += min_dist;
}
for (i=0;i<nb_entries*ndim;i++)
codebook[i] = 0;
codebook[i*ndim+j] *= (1./count[i]);
w2 += (count[i]/(float)nb_vectors)*(count[i]/(float)nb_vectors);
}
- fprintf(stderr, "%f / %d\n", 1./w2, nb_entries);
+ fprintf(stderr, "%f / %d var = %f\n", 1./w2, nb_entries, total_min_dist/nb_vectors );
}
void update_weighted(float *data, float *weight, int nb_vectors, float *codebook, int nb_entries, int ndim)
{
int i, j, e;
e = 1;
+
for (j=0;j<ndim;j++)
codebook[j] = 0;
for (i=0;i<nb_vectors;i++)
codebook[j] += data[i*ndim+j];
for (j=0;j<ndim;j++)
codebook[j] *= (1./nb_vectors);
-
-
+
while (e< nb_entries)
{
split(codebook, e, ndim);
float *data, *pred, *codebook, *codebook2, *codebook3;
float *weight, *weight2, *weight3;
float *delta, *delta2;
- float tmp, err;
+ float tmp, err, min_dist, total_min_dist;
int ret;
printf("Jean-Marc Valin's Split VQ training program....\n");
{
ret = fscanf(ftrain, "%f ", &tmp);
}
- printf("\r%d lines",nb_vectors++);
+ nb_vectors++;
+ if ((nb_vectors % 1000) == 0)
+ printf("\r%d lines",nb_vectors);
}
rewind(ftrain);
- printf("ndim %d nb_vectors %d nb_entries %d\n", ndim, nb_vectors, nb_entries);
+ printf("\nndim %d nb_vectors %d nb_entries %d\n", ndim, nb_vectors, nb_entries);
data = malloc(nb_vectors*ndim*sizeof(*data));
weight = malloc(nb_vectors*ndim*sizeof(*weight));
}
}
- /* initial predictor state */
+ /* 20ms (two frame gaps) initial predictor state */
- for (i=0;i<ndim;i++)
- pred[i] = data[i] - M_PI*(i+1)/(ndim+1);
+ for (i=0;i<ndim;i++) {
+ pred[i+ndim] = pred[i] = data[i] - M_PI*(i+1)/(ndim+1);
+ }
/* generate predicted data for training */
delta = malloc(nb_vectors*ndim*sizeof(*data));
err = 0;
+ total_min_dist = 0;
for (i=0;i<nb_vectors;i++)
{
- int nearest = find_nearest(codebook, nb_entries, &pred[i*ndim], ndim);
+ int nearest = find_nearest(codebook, nb_entries, &pred[i*ndim], ndim, &min_dist);
+ total_min_dist += min_dist;
for (j=0;j<ndim;j++)
{
//delta[i*ndim+j] = data[i*ndim+j] - codebook[nearest*ndim+j];
}
//printf("\n");
}
- fprintf(stderr, "LSP RMS error: %f\n", sqrt(err/nb_vectors/ndim));
-
+ fprintf(stderr, "Stage 1 LSP RMS error: %f\n", sqrt(err/nb_vectors/ndim));
+ fprintf(stderr, "Stage 1 LSP variance.: %f\n", total_min_dist/nb_vectors);
+
#if 1
vq_train(delta, nb_vectors, codebook2, nb_entries, ndim/2);
vq_train(delta+ndim*nb_vectors/2, nb_vectors, codebook3, nb_entries, ndim/2);
vq_train_weighted(delta, weight2, nb_vectors, codebook2, nb_entries, ndim/2);
vq_train_weighted(delta+ndim*nb_vectors/2, weight3, nb_vectors, codebook3, nb_entries, ndim/2);
#endif
+
err = 0;
-
+ total_min_dist = 0;
+
delta2 = delta + nb_vectors*ndim/2;
for (i=0;i<nb_vectors;i++)
{
int n1, n2;
- n1 = find_nearest(codebook2, nb_entries, &delta[i*ndim/2], ndim/2);
+ n1 = find_nearest(codebook2, nb_entries, &delta[i*ndim/2], ndim/2, &min_dist);
for (j=0;j<ndim/2;j++)
{
delta[i*ndim/2+j] = delta[i*ndim/2+j] - codebook2[n1*ndim/2+j];
err += (delta[i*ndim/2+j])*(delta[i*ndim/2+j]);
}
+ total_min_dist += min_dist;
- n2 = find_nearest(codebook3, nb_entries, &delta2[i*ndim/2], ndim/2);
+ n2 = find_nearest(codebook3, nb_entries, &delta2[i*ndim/2], ndim/2, &min_dist);
for (j=0;j<ndim/2;j++)
{
delta[i*ndim/2+j] = delta[i*ndim/2+j] - codebook2[n2*ndim/2+j];
err += (delta2[i*ndim/2+j])*(delta2[i*ndim/2+j]);
}
+ total_min_dist += min_dist;
}
- fprintf(stderr, "LSP RMS error stage 2: %f\n", sqrt(err/nb_vectors/ndim));
+ fprintf(stderr, "Stage 2 LSP RMS error: %f\n", sqrt(err/nb_vectors/ndim));
+ fprintf(stderr, "Stage 2 LSP Variance.: %f\n", total_min_dist/nb_vectors);
float xq[ndim];
for (i=0;i<ndim;i++)
printf("\n");*/
}
+ /* save output tables to text files */
+
+ exit(0);
for (i=0;i<nb_entries;i++)
{
for (j=0;j<ndim;j++)