AR=ar
GPATH=src lib
VPATH=src lib
CPPFLAGS= -O3 -DNDEBUG `pkg-config --cflags OpenCV` -Iinclude -Iinclude/sonic -Iinclude/speech_tools -Iinclude/soundtouch -Iinclude/festival -Iinclude/utf8 `pkg-config --cflags libpulse-simple`
LDFLAGS=-Llib
LIBS=`pkg-config --libs opencv` -lpthread -lvorbisenc -lvorbis -lm -logg -lmp3lame -lsndfile -lncurses `pkg-config --libs libpulse-simple`
SLIBS=lib/libTLD.a lib/libFerNNClassifier.a lib/libLKTracker.a lib/libtld_utils.a lib/libekho.a lib/libSoundTouch.a lib/libFestival.a lib/libestools.a lib/libeststring.a lib/libestbase.a
OBJECTS=run_tld.o
TARGET=run_tld
$(TARGET):$(OBJECTS) $(SLIBS)
$(CXX) $^ $(LDFLAGS) $(SLIBS) $(LIBS) -o $@
lib/libTLD.a:TLD.o
$(AR) rc $@ $<
lib/libFerNNClassifier.a:FerNNClassifier.o
$(AR) rc $@ $<
lib/libLKTracker.a:LKTracker.o
$(AR) rc $@ $<
lib/libtld_utils.a:tld_utils.o
$(AR) rc $@ $<
.cpp.o:
$(CXX) -c $< $(CPPFLAGS) -o $@
.c.o:
$(CC) -c $< $(CPPFLAGS) -o $@
clean:
-rm -rf $(TARGETS) *.o lib/*.a
然后,直接#make,执行#./run_tld -p parameters.yml即可听到美妙的提示声音了。
三、目前存在的问题和解决构思
1、感觉Ekho(余音)TTS附带的普通话不太顺畅和清晰,不过粤语很有味道。这个问题可能得放到后面移植到嵌入式平台的时候再处理了;
2、得考虑是在TLD运行的时候新开一个进程或者线程在运行语音提示功能还是其他方式,这个需要考虑下。之前了解过进程和线程的差别,现在忘了,哎!
3、线程间的控制问题,例如我忽然想要语音停止播放。解决?学习!Keep learning!