Sclite (SCTK) установить, файл не распознан, формат файла не распознан, Cygwin - PullRequest
0 голосов
/ 10 мая 2018

Я сейчас пытаюсь установить NIST sclite, который является частью SCTK 2.4.0 ( github или более новая версия ).Я пытаюсь установить на Cygwin в bash.Установка выполняется с использованием 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

I 'мы посмотрели этот пост , но я определил, что файл 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 позволяет нам это делать.) Надеюсь, это облегчит людям помощь в решении проблем, с которыми я столкнулся при установке.

Обсуждается следующая проблема, с которой я столкнулся здесь .Вы можете увидеть следующую проблему в ответе на эту проблему.

Ответы [ 2 ]

0 голосов
/ 16 июля 2018

Это решение EASIER.

Вот подробности того, что я назвал «решением * 1003». Прямо сейчас это просто список команд без подробностей. Как показано здесь, эти команды установят каталог sclite-2.4.10 в каталог $HOME (~):

$ 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.

0 голосов
/ 10 мая 2018

(См. Мой комментарий под вопросом для решения 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
<br/>

Итак, я перешел к makefile в списке (кроме rfilter1, см. ниже) и изменил там код, заменяя каждый -Os с -m64.Делайте это ТОЛЬКО для make-файлов, которые перечислены.Я приведу пример для одного из перечисленных файлов, но учтите, что вам придется сделать это для остальных.

cd sctk
vim src/asclite/core/makefile

Когда файл был открыт, я нашел строку:

CFLAGS = -g -Os

, который я изменил на

CFLAGS = -g -m64

(нажал "i", чтобы войти в режим INSERT, внес изменения, нажал "Esc", затем нажал ":wq"(Записать и выйти), затем "Enter")

Я внес изменения во все перечисленные файлы, КРОМЕ 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<string, Filter::Filter*> filters;
                                    ^
recording.h:122:36: error: template argument 4 is invalid

о котором я спросил здесь .

...