sclite(SCTK)安装,文件无法识别,文件格式无法识别,Cygwin
我目前正在尝试安装NIST的sclite
,它是SCTK 2.4.0( github或更新版本 )的一部分。 我正在尝试在bash
安装Cygwin
。 安装使用make
完成。
我做了什么
我为安装创建了一个目录并导航到该目录
mkdir sctk2.4.0 cd sctk2.4.0
(你可能需要$ cd /path/to/dir/sctk2.4.0
。)
我从github
克隆了这个项目
git clone https://github.com/chinshr/sctk.git
导航到基础文件夹
cd sctk
然后我开始按照INSTALL
文件中的说明操作。
运行
make config
工作得很好,但打字后
make all
我得到了后面的输出
(mkdir -p bin) (cd src; make all) make[1]: Entering directory '/cygdrive/c/David/programs/sctk2.4.0/sctk/src' (cd asclite; make all) make[2]: Entering directory '/cygdrive/c/David/programs/sctk2.4.0/sctk/src/asclite' (cd core; make all) make[3]: Entering directory '/cygdrive/c/David/programs/sctk2.4.0/sctk/src/asclite/core' g++ -o asclite -g -Os alignment.o segment.o sgml_reportgenerator.o alignedsegmentiterator.o reportgenerator.o speechset.o segmentsgroup.o logger.o tokenalignment.o sgml_generic_reportgenerator.o recording.o statistics.o compressedlevenshteinmatrix.o segmentor.o id.o trntrn_segmentor.o linestyle_inputparser.o inputparser.o levenshteinmatrix.o levenshtein.o uemfilter.o speakermatch.o spkrautooverlap.o graphalignedsegment.o rawsys_reportgenerator.o graphalignedtoken.o timedobject.o stt_scorer.o aligner.o arraylevenshteinmatrix.o graph.o main.o trn_inputparser.o alignedspeech.o token.o alignedsegment.o graph_coordinate.o rttm_inputparser.o scorer.o properties.o ctmstmrttm_segmentor.o filter.o speech.o alignedspeechiterator.o stm_inputparser.o checker.o ctm_inputparser.o lzma/LzFind.o lzma/LzmaEnc.o lzma/Alloc.o lzma/LzmaLib.o lzma/LzmaDec.o -lm alignment.o: file not recognized: File format not recognized collect2: error: ld returned 1 exit status make[3]: *** [makefile:62: asclite] Error 1 make[3]: Leaving directory '/cygdrive/c/David/programs/sctk2.4.0/sctk/src/asclite/core' make[2]: *** [makefile:12: all] Error 2 make[2]: Leaving directory '/cygdrive/c/David/programs/sctk2.4.0/sctk/src/asclite' make[2]: *** [makefile:12: all] Error 2 make[2]: Leaving directory '/cygdrive/c/David/programs/sctk2.4.0/sctk/src' make: *** [makefile:20: all] Error 2
我看过这篇SOpost ,但我已经确定alignment.o
文件没有损坏。 为了以防万一,我尝试了一些make clean
,甚至从github
重新克隆了该项目,但我仍然得到同样的错误。
任何人都可以帮我完成这个安装,或者至少可以进入下一步吗?
系统细节
$ uname -a CYGWIN_NT-6.1 CAP-D-ENG-INT3 2.10.0(0.325/5/3) 2018-02-02 15:16 x86_64 Cygwin $ bash --version GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin) ... $ gcc --version gcc (GCC) 6.4.0 ... $ g++ --version g++ (GCC) 6.4.0 ... $ make --version GNU Make 4.2.1 Built for x86_64-unknown-cygwin ... $ systeminfo | sed -n 's/^OS\ *//p' Name: Microsoft Windows 7 Enterprise Version: 6.1.7601 Service Pack 1 Build 7601 Manufacturer: Microsoft Corporation Configuration: Member Workstation Build Type: Multiprocessor Free
注意
我问这个问题,然后回答我自己的问题。 (我喜欢StackOverflow允许我们这样做。)希望这会让人们更容易帮助我解决我在安装中遇到的问题。
我遇到的下一个问题在这里讨论。 你可以在这个问题的答案中看到下一个问题。
(请参阅我在kaldi
解决方案问题下的评论。)
这个问题的解决方案是在README
,因为解决方案通常是。 注意 :此问题解决后出现了另一个问题。 请参阅本答案的底部以获得帮助。
这是我用来从README
获取相关信息的命令。
cat README | tail -13
这是相关的信息
64 bits Compilation With big alignments, sctk needs to be compiled in 64 bits. By default, the C/C++ software are compiled in 32 bits with the options (-Os) but can be compiled in 64 bits, -m64 is added to the CFLAGS variable in: src/asclite/core/makefile src/asclite/test/makefile src/rfilter1/makefile src/sclite/makefile Example of CFLAGS: For OSX 10.4+: -fast -m64 -arch x86_64 -arch ppc64
所以,我去了列出的makefile
(除了rfilter1
,见下文)并更改了代码,用-m64
替换每个-Os
。 仅对列出的makefile执行此操作。 我将举例说明其中一个列出的文件,但请注意,您必须为其他文件执行此操作。
cd sctk vim src/asclite/core/makefile
当文件打开时,我发现了这一行:
CFLAGS = -g -Os
我改成了
CFLAGS = -g -m64
(按“ i
”进入INSERT
模式,进行更改,按“ Esc
”,然后按“ :wq
”(写入和退出),然后按“ Enter
”)
我在所有列出的文件EXCEPT src/rfilter1/makefile
进行了更改,因为该文件中没有-Os
。 这最终变得很重要,因为如果我根本没有更改此文件,安装将无法正常工作。
完成后,我运行make clean
,但我没有运行make config
,因为这将取消我们刚才所做的更改。 我直接去了:
make all
这让我们过去了。
这个问题得到了解决,但还有另一个问题:
In file included from main.cpp:20:0: recording.h:122:36: error: template argument 2 is invalid map filters; ^ recording.h:122:36: error: template argument 4 is invalid
这是我在这里问的。
这是’EASIER’解决方案。
以下是我称之为“ kaldi
解决方案”的详细信息。 现在,它只是一个没有细节的命令列表。 如此处所示,这些命令将在$HOME
( ~
)目录下安装sclite-2.4.10
目录:
$ cd $ git clone https://github.com/kaldi-asr/kaldi.git $ cd kaldi/tools $ extras/check_dependencies.sh $ make -j $(nproc --all) $ cp -R sctk-2.4.10 ~/ $ cd $ rm -rf kaldi $ cd sctk-2.4.10/ $ cp $HOME/.bashrc "${HOME}/.bashrc.$(date +%Y%m%d-%H%M%S).bak" $ echo -e "\n\n## Allow access to sclite, rfilter, etc" >> $HOME/.bashrc $ echo 'export PATH='"$(pwd)/bin"':$PATH' >> $HOME/.bashrc $ source ~/.bashrc
有关如何在Windows上使用它的详细信息,请参阅此问题/答案。