<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3652290</guid>
        <pubDate>Wed, 10 Feb 2016 08:04:31 +0000</pubDate>
        <title>Адаптация HTS-demo_CMU-ARCTIC-SLT в windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3652290</link>
        <description><![CDATA[webcoder88: Ссылка на тренированный голос slt (48k) есть в сообщении <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=407233&st=0&#' target='_blank'>Синтез речи в hts_engine.exe 1.05</a>]]></description>
        <author>webcoder88</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3648068</guid>
        <pubDate>Wed, 20 Jan 2016 07:43:34 +0000</pubDate>
        <title>Адаптация HTS-demo_CMU-ARCTIC-SLT в windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3648068</link>
        <description><![CDATA[webcoder88: Апериодика по кепстрам получается &quot;кривая&quot;, вместо нормальной речи синтезируется шопот.<br>
<br>
Код на матлабе для построения графиков из любого бинарного файла, содержащего набор чисел сплавающей запятой (float, 4Bt)  <br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">% fread_f0.m</div><div class="code_line">% построения графиков из любого бинарного файла, содержащего набор чисел сплавающей запятой (float, 4Bt) </div><div class="code_line">% Автор: webcoder88</div><div class="code_line">% clear all;</div><div class="code_line">% close all;</div><div class="code_line">% &nbsp;infile=&#39;E:\_HTS-demo_CMU_STR\data\lf0\cmu_us_arctic_slt_a0001.lf0&#39;;</div><div class="code_line">infile=&#39;E:\_HTS-demo_CMU_STR\data\cmp\cmu_us_arctic_slt_a0001.cmp&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">fid = fopen(infile,&#39;r&#39;); &nbsp;% fid = fopen(infile,&#39;r&#39;,&#39;ieee-le&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">[y, count] = fread(fid,inf,&#39;float32&#39;,0,&#39;ieee-le&#39;); &nbsp; &nbsp; &nbsp;%inf - читать до конца файла, count-счетчик успешно прочитанных </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;%значений указанного формата (&#39;ieee-le&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;%count=filesise/4</div><div class="code_line">&nbsp;</div><div class="code_line">for(i=1:count)</div><div class="code_line">if (y(i)==-1.0e+010)</div><div class="code_line">&nbsp;&nbsp; &nbsp;y(i)=0; &nbsp; &nbsp;</div><div class="code_line">end;</div><div class="code_line">%fprintf(&#39;=%f\n&#39;, y(i));</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">count</div><div class="code_line">&nbsp;</div><div class="code_line">figure; plot(y); grid on;</div><div class="code_line">&nbsp;</div><div class="code_line">fclose(fid);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>webcoder88</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3647655</guid>
        <pubDate>Mon, 18 Jan 2016 08:01:41 +0000</pubDate>
        <title>Адаптация HTS-demo_CMU-ARCTIC-SLT в windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3647655</link>
        <description><![CDATA[webcoder88: В методе STRAIGHT на расчет bound ap и обратное преобразование тратится много времени. В реальном вокодере приведет к большим вычислительным затратам.<br>Моно тренировать апы также как sp, путем расчтета их mgc и получать апериодику так же просто, как спектр.]]></description>
        <author>webcoder88</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3647626</guid>
        <pubDate>Mon, 18 Jan 2016 01:09:42 +0000</pubDate>
        <title>Адаптация HTS-demo_CMU-ARCTIC-SLT в windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3647626</link>
        <description><![CDATA[webcoder88: Пример обратного восстановления голоса для метода STAIGHT.<br>
<span class="b-attach" data-size="90000" data-hits="209" data-attach-id="48539" data-attach-post-id="3647626">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3647626&amp;attach_id=48539' title='Скачать файл' target='_blank'>frwav.part1.rar</a> (, : 209)
		</span><br>
<span class="b-attach" data-size="56794" data-hits="206" data-attach-id="48540" data-attach-post-id="3647626">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3647626&amp;attach_id=48540' title='Скачать файл' target='_blank'>frwav.part2.rar</a> (, : 206)
		</span> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2016-01-18T01:13:17+00:00">18.01.16, 01:13</time></span></span><br>
Восстановление синтезированного голоса для метода STAIGHT - <a class='tag-url' href='https://www.sendspace.com/file/vsenqe' target='_blank'>https://www.sendspace.com/file/vsenqe</a>.<br>
Общий развмер восстановленных файлов будет ~20MBt <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2016-01-18T01:23:37+00:00">18.01.16, 01:23</time></span></span><br>
Вопрос: Зачем нужно восстанавливать речь из тренировочных данных?<br>
Ответ: Для оценки качества тренировочных данных и будущего голоса. Следует учитывать, что качество синтезированного голоса будет немного хуже.]]></description>
        <author>webcoder88</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3647184</guid>
        <pubDate>Fri, 15 Jan 2016 03:10:34 +0000</pubDate>
        <title>Адаптация HTS-demo_CMU-ARCTIC-SLT в windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3647184</link>
        <description><![CDATA[webcoder88: Команда  &#036;{SOPR} –LN  tmp &gt; lf0/&#036;{base}.lf0; &#092; записывает f0 вместо логарифма.<br>
Проще  вычислять логарифм в матлабе или переписать скрипт freq2lfreq.pl.<br>
Во вложении исходный код на с++.<br>
<span class="b-attach" data-size="25836" data-hits="221" data-attach-id="48501" data-attach-post-id="3647184">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3647184&amp;attach_id=48501' title='Скачать файл' target='_blank'>freq2lfreq.rar</a> (, : 221)
		</span>]]></description>
        <author>webcoder88</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3646873</guid>
        <pubDate>Thu, 14 Jan 2016 05:15:05 +0000</pubDate>
        <title>Адаптация HTS-demo_CMU-ARCTIC-SLT в windows</title>
        <link>https://forum.sources.ru/index.php?showtopic=407649&amp;view=findpost&amp;p=3646873</link>
        <description><![CDATA[webcoder88: Тренировочные скрипты HTS-demo_CMU-ARCTIC-SLT, а также новые модификации HTS-demo_CMU-ARCTIC-SLT_STRAIGHT, HTS-demo_CMU-ARCTIC-SLT_FORMANT создавались для среды Linux.<br>
Я считаю этот факт крупным недостатком, тк пользователей Windows значительно больше пользователей Linux.<br>
Весь процесс состоит из двух этапов: подготовки тренировочных данных в формате HTS, собственно тренировку и проверку голоса.<br>
<br>
Я тренирую голос в HTS-demo_CMU-ARCTIC-SLT_STRAIGHT с 2014 г. и могу со 100% уверенностью утверждать, что подготовка данных в Windows невозможна без существенной доработки perl-скриптов<br>
из каталога data&#092;script. Кроме того, потребуется некоторое понимание процесса  и  изучение документации HTS и SPTK.  Linux не поможет, хотя желающие могут попробовать.<br>
Тема достаточно обширная. Следует начать с установки cygwin и закончить поэтапной заменой всех perl-скриптов на их аналоги в других языках программирования, а также начальной установкой конфигурационных данных.<br>
<br>
Путь к утилитам sptk, sygwin и тд можно прописать в переменную окружения path или указать полный путь в формате Windows<br>
# первый вариант<br>
X2X=X2X              # основное требование bash из sygwyn - никаких пробелов&#33; <br>
SOPR=SOPR<br>
MGCEP=MGCEP<br>
LPC2LSP=LPC2LSP<br>
<br>
#второй вариант<br>
BCP=&#39;c:&#092;usr&#092;local&#092;sptk&#092;bin&#092;bcp.exe&#39; #  формат windows<br>
<br>
BCP=&#39;c:/usr/local/sptk/bin/bcp.exe&#39; # формат линукса, так будет работать в bash а в perl может привести к ошибкам (&#036;line=&#39;...&#39;)<br>
<br>
 <br>
<br>
Командная строка для запуска скр. подготовки данных:<br>
<br>
echo &quot;Running a training/synthesis perl script (Training.pl) in background....&quot;<br>
 c:&#092;usr&#092;local&#092;perl scripts/Training.pl scripts/Config.pm.in  &gt; log 2&gt;&amp;1 &amp;<br>
pause<br>
<br>
<br>
<br>
Далее все подстановки типа &#036;() заменяются на &#036;{}.  <br>
Исправленный вариант кода генерации скрипта для матлаб:<br>
<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;############</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;## &nbsp;start ##</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;############</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">straight:</div><div class="code_line">&nbsp;&nbsp; &nbsp;# Extracting f0, aperiodicity, and spectra using STRAIGHT</div><div class="code_line">&nbsp;&nbsp; &nbsp;mkdir -p wav sp ap f0</div><div class="code_line">&nbsp;&nbsp; &nbsp;frameshift=`expr 1000 \* ${FRAMESHIFT} / ${SAMPFREQ}`; \</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;path(path,&#39;${STRAIGHT}&#39;);&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#62; &nbsp;scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;prm.F0frameUpdateInterval=${frameshift};&quot; &nbsp; &nbsp; &nbsp;&#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;prm.F0searchUpperBound=${UPPERF0};&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;prm.F0searchLowerBound=${LOWERF0};&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;prm.spectralUpdateInterval=${frameshift};&quot; &nbsp; &nbsp; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#62;&#62; scripts/extract.m</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for raw in raw/${DATASET}_${SPEAKER}_*.raw; do \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;base=`basename ${raw} .raw`; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;echo ${base}; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;min=`${X2X} +sf ${raw} | ${MINMAX} | ${X2X} +fa | head -n 1`; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;max=`${X2X} +sf ${raw} | ${MINMAX} | ${X2X} +fa | tail -n 1`; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if [ -s ${raw} -a ${min} -gt -32768 -a ${max} -lt 32767 ]; then \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wav=wav/${base}.wav; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;f0=f0/${base}.f0; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ap=ap/${base}.ap; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sp=sp/${base}.sp; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo -n &quot;Converting ${raw} to ${wav} and generating MATLAB script...&quot;; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;${SOX} -c 1 -s -${SOXOPTION} -t raw -r ${SAMPFREQ2} ${raw} -c 1 -s -${SOXOPTION} -t wav -r ${SAMPFREQ} ${wav}; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;fprintf(1,&#39;Processing ${wav}\n&#39;);&quot; &nbsp; &nbsp; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;[x,fs]=wavread(&#39;${wav}&#39;);&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;[f0, ap] = exstraightsource(x,fs,prm);&quot; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;[sp] = exstraightspec(x, f0, fs, prm);&quot; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;ap = ap&#39;;&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;sp = sp&#39;;&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;save &#39;${f0}&#39; f0 -ascii;&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;save &#39;${ap}&#39; ap -ascii;&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;save &#39;${sp}&#39; sp -ascii;&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#62;&#62; scripts/extract.m; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;done&quot;; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;fi; &nbsp;\</div><div class="code_line">&nbsp;&nbsp; &nbsp;done; \</div><div class="code_line">&nbsp;&nbsp; &nbsp;echo &quot;quit;&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;copy &nbsp;scripts/extract.m extract.m</div><div class="code_line">&nbsp;&nbsp; &nbsp;${MATLAB} &#60; extract.m</div><div class="code_line">&nbsp;&nbsp; &nbsp;#rm -f scripts/extract.m</div><div class="code_line">&nbsp;exit;</div></ol></div></div></div></div><br>
<br>
<br>
Приведу еще 1 пример скрипта, создающего логарифм основного тона. <br>
Кстати, на всех  англоязычных ресурсах он упоминается как log, те на первый взгляд это некий лог-файл с данными основного тона. :)  <br>
&#092;data&#092;Makefile.in <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">lf0:</div><div class="code_line">&nbsp;&nbsp; &nbsp;# Converting f0 to log f0</div><div class="code_line">&nbsp;&nbsp; &nbsp;mkdir -p lf0</div><div class="code_line">&nbsp;&nbsp; &nbsp;for f0 in f0/${DATASET}_${SPEAKER}_*.f0; do \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;base=`basename ${f0} .f0`; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if [ -s ${f0} ]; then \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;Converting F0 file ${f0} to log F0 file lf0/${base}.lf0&quot;; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;${X2X} +af ${f0} &#62; tmp; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;${PERL} scripts/freq2lfreq.pl tmp &#62; tmp.lf0 &nbsp; &nbsp; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if [ -n &quot;`${NAN} lf0/${base}.lf0`&quot; ]; then \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot; Failed to extract ${f0}&quot;; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rm -f lf0/${base}.lf0; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fi; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;fi; \</div><div class="code_line">&nbsp;&nbsp; &nbsp;done</div><div class="code_line">&nbsp;&nbsp; &nbsp;rm -f tmp</div></ol></div></div></div></div><br>
<br>
В исходном варианте freq2lfreq.pl добавляет мусор к выходным данным, что можно заметить  по неправильному размеру выходных файлов. Это связано с неправильной работой некоторых операторов perl ( unpack и pack ). Во вложении графики основного тона, полученные в матлаб, для 2-х моих вариантов скрипта.  <br>
После исправления скрипт обрезал часть файла с логарифмом ОТ, так, что синтезированный голос не говорит, а шепчет.  <br>
В итоге пришлось заменить вызов скрипта freq2lfreq.pl на вызов утилиты sopr из пакета SPTK. График правильный.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">lf0:</div><div class="code_line">&nbsp;&nbsp; &nbsp;# Converting f0 to log f0</div><div class="code_line">&nbsp;&nbsp; &nbsp;mkdir -p lf0</div><div class="code_line">&nbsp;&nbsp; &nbsp;for f0 in f0/${DATASET}_${SPEAKER}_*.f0; do \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;base=`basename ${f0} .f0`; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if [ -s ${f0} ]; then \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot;Converting F0 file ${f0} to log F0 file lf0/${base}.lf0&quot;; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;${X2X} +af ${f0} &#62; tmp; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;${SOPR} –LN &nbsp;tmp &#62; lf0/${base}.lf0; \</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if [ -n &quot;`${NAN} lf0/${base}.lf0`&quot; ]; then \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo &quot; Failed to extract ${f0}&quot;; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rm -f lf0/${base}.lf0; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fi; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;fi; \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;#exit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;done</div><div class="code_line">&nbsp;&nbsp; &nbsp;rm -f tmp</div></ol></div></div></div></div><br>
<span class="b-attach" data-size="10552" data-hits="235" data-attach-id="48488" data-attach-post-id="3646873">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3646873&amp;attach_id=48488' title='Скачать файл' target='_blank'>cmu_slt_a001lf0.rar</a> (, : 235)
		</span> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2016-01-14T05:26:14+00:00">14.01.16, 05:26</time></span></span><br>
Следующие &quot;аксиомы&quot;:<br>
Формат файлов из каталогов data/ap,sp,f0  - ascii (текстовый формат). Открывается в текстовом редакторе.<br>
Формат файлов из каталогов data/lf0, mgc, bap, cmp - float.   Открывается в winhex.<br>
Формат файлов из каталогов gen&#092;qst001&#092;ver1&#092;1mix&#092;0 - float. Расширения файлов намеренно вводят в заблуждение. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2016-01-14T05:43:56+00:00">14.01.16, 05:43</time></span></span><br>
Теперь смотрим размер файла  cmu_us_arctic_slt_a0001.lf0. Он равен 2680 байт. Правый щелчок мыши, свойства, размер в скобках.<br>
В файле хранится набор чисел в формате float. Каждое число занимает 4 байта, поэтому, после деления размера файла на 4 получите <br>
количество сохраненных значений или точное значение total_frame. Это очень важный параметр. <br>
Кстати, этот размер файла одинаков в cmu_us_arctic_slt и cmu_us_arctic_slt_straight, хотя методы разные. Совпадение.]]></description>
        <author>webcoder88</author>
        <category>Речевые Технологии</category>
      </item>
	
      </channel>
      </rss>
	