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上使用它的详细信息,请参阅此问题/答案。