Перенаправить вывод Pocketsphinx_continuous в файл

У меня есть уродливая команда:

pocketsphinx_continuous -samprate 48000 -nfft 2048 -hmm /usr/local/share/pocketsphinx/model/en-us/en-us -lm 9745.lm -dict 9745.dic -inmic yes 

Breakdown: он прослушивает любой шум и когда он обнаруживает некоторые, он слушает его, а затем выполняет распознавание речи на нем.

  • Выходной параметр при соединении двух матриц?
  • arecord, пока уровень звука не снизится достаточно низко
  • Теперь в выводе команды есть куча мусора, и одна строка имеет значение. Вот результат одного распознавания речи:

     READY.... Listening... INFO: cmn_prior.c(131): cmn_prior_update: from < 21.18 -11.87 6.18 0.77 4.42 -0.76 1.99 8.43 2.83 -1.46 3.80 6.19 3.71 > INFO: cmn_prior.c(149): cmn_prior_update: to < 23.28 -5.11 8.81 -0.28 0.06 -0.83 0.94 6.68 0.42 1.07 4.00 7.34 4.32 > INFO: ngram_search_fwdtree.c(1553): 814 words recognized (9/fr) INFO: ngram_search_fwdtree.c(1555): 60871 senones evaluated (684/fr) INFO: ngram_search_fwdtree.c(1559): 37179 channels searched (417/fr), 6846 1st, 21428 last INFO: ngram_search_fwdtree.c(1562): 1415 words for which last channels evaluated (15/fr) INFO: ngram_search_fwdtree.c(1564): 2626 candidate words for entering last phone (29/fr) INFO: ngram_search_fwdtree.c(1567): fwdtree 0.66 CPU 0.742 xRT INFO: ngram_search_fwdtree.c(1570): fwdtree 3.36 wall 3.780 xRT INFO: ngram_search_fwdflat.c(302): Utterance vocabulary contains 21 words INFO: ngram_search_fwdflat.c(948): 655 words recognized (7/fr) INFO: ngram_search_fwdflat.c(950): 40095 senones evaluated (451/fr) INFO: ngram_search_fwdflat.c(952): 31447 channels searched (353/fr) INFO: ngram_search_fwdflat.c(954): 1794 words searched (20/fr) INFO: ngram_search_fwdflat.c(957): 1006 word transitions (11/fr) INFO: ngram_search_fwdflat.c(960): fwdflat 0.29 CPU 0.326 xRT INFO: ngram_search_fwdflat.c(963): fwdflat 0.30 wall 0.333 xRT INFO: ngram_search.c(1253): lattice start node <s>.0 end node </s>.70 INFO: ngram_search.c(1279): Eliminated 1 nodes before end node INFO: ngram_search.c(1384): Lattice has 127 nodes, 473 links INFO: ps_lattice.c(1380): Bestpath score: -2298 INFO: ps_lattice.c(1384): Normalizer P(O) = alpha(</s>:70:87) = -132973 INFO: ps_lattice.c(1441): Joint P(O,S) = -156371 P(S|O) = -23398 INFO: ngram_search.c(875): bestpath 0.01 CPU 0.011 xRT INFO: ngram_search.c(878): bestpath 0.00 wall 0.005 xRT HELLO 

    Это HELLO – единственное, что имеет значение, и я хочу, чтобы это как-то выводилось в файл.

    Я уже пытался добавить >foo.txt в конец команды, которая работает, за исключением того, что выводит все, кроме HELLO в файл, и HELLO даже не попадает в командную строку.

    Я попытался добавить &> foo.txt 2> foo.txt >> foo.txt и все они заставляют вывод идти туда, где он говорит, за исключением случаев, когда он также вызывает READY.... , Listening... и HELLO чтобы исчезнуть.

    Как я могу направить HELLO в файл, каким бы то ни было образом, мне все равно, если с ним подойдет другой материал, я могу вырезать другой материал.

  • Выходной параметр при соединении двух матриц?
  • arecord, пока уровень звука не снизится достаточно низко
  • One Solution collect form web for “Перенаправить вывод Pocketsphinx_continuous в файл”

    Попробуй это:

     pocketsphinx_continuous -samprate 48000 -nfft 2048 -hmm \ /usr/local/share/pocketsphinx/model/en-us/en-us -lm 9745.lm -dict 9745.dic \ -inmic yes 2>&1 | tee ./full-output.log | grep -v --line-buffered '^INFO:' 

    Это будет записывать все в ./full-output.log , но скрыть любой вывод с консоли, который начинается с INFO: 2>&1 перенаправляет стандартную ошибку на стандартный вывод, так что весь выход принудительно проходит через серию труб, а не только стандартный вывод.

    Если вы хотите скрыть другие строки, которые не содержат INFO: вы можете использовать | в расширенном синтаксисе grep :

     egrep -v --line-buffered '^INFO:|^ERROR:' 

    Опция --line-buffered предотвратит pocketsphinx_continuous выход pocketsphinx_continuous до полного завершения вывода из pocketsphinx_continuous .

    редактировать

    Также возможно, что pocketsphinx_continuous уже помещает все, что вы хотите, в стандартный вывод и все, чего вы не хотите в стандартной ошибке. Итак, вы можете попробовать:

     pocketsphinx_continuous -samprate 48000 -nfft 2048 -hmm \ /usr/local/share/pocketsphinx/model/en-us/en-us -lm 9745.lm -dict 9745.dic \ -inmic yes 2>./unwanted-stuff.log | tee ./words.log 

    Это будет регистрировать все, что выйдет на стандартной ошибке, на ./unwanted-stuff.log и все на стандартном ./words.log в ./words.log .

    Linux и Unix - лучшая ОС в мире.