<?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=414740&amp;view=findpost&amp;p=3841745</guid>
        <pubDate>Wed, 04 Nov 2020 14:37:35 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3841745</link>
        <description><![CDATA[babai-rais: Главное в анализе речевых данных – это выделить признаки, которые можно считать основными для <br>
идентификации лингвистического содержания. Все шумы и признаки которые отвечают за окраску можно отбросить. Принято использовать частотные или временные признаки отдельно или совместно.<br>
Считаю возможным использовать  безразмерную величину как скважность, один из классификационных признаков импульсных систем, определяющий отношение периода следования (повторения) импульсов к длительности импульса.<br>
Речевой сигнал на выходе компаратора будет прямоугольным, с импульсами с различной длительности и периодов. Смысловое содержание при прослушивании сохраняется. Чем выше частота тем ближе звук к оригиналу. В <a class='tag-url' href='https://ru.dsplib.org/content/fourier_series_pimp/fourier_series_pimp.html' target='_blank'>теории</a> ни бум-бум проверял на практике.<br>
Речь диктора можно прокрутить быстрее или тише значит изменятся и частотные и временные характеристики. Не изменится лишь скважность. Остается найти алгоритмы нахождения участков со скважностью присущих лишь этому диктору.]]></description>
        <author>babai-rais</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3802120</guid>
        <pubDate>Wed, 26 Jun 2019 02:43:21 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3802120</link>
        <description><![CDATA[Abraziv: Мало данных это же нормальная ситуация для данной задачи. Откуда их много возьмётся. Предобучение звучит обнодежиаающе, но это же не MAP адаптация? Надо почитать.]]></description>
        <author>Abraziv</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3802113</guid>
        <pubDate>Tue, 25 Jun 2019 21:46:33 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3802113</link>
        <description><![CDATA[nsh: Ну что тут сказать, записей диктора всего 10. И как система должна учить тысячи параметров? Тут как не исхитряйся, ничего не получится. Мало данных - стандартное решение это предобучение на больших данных. Это и предлагаю. Работать будет хорошо, зуб даю.]]></description>
        <author>nsh</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3802065</guid>
        <pubDate>Tue, 25 Jun 2019 04:47:15 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3802065</link>
        <description><![CDATA[Abraziv: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414740&view=findpost&p=3802059'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>nsh &#064; <time class="tag-quote__quoted-time" datetime="2019-06-24T21:58:25+00:00">24.06.19, 21:58</time></span><div class='quote '>Нет конечно. На таких маленьких данных ничего просто не научится нормально, как раз и будет переобучаться. Кроме того из описания ничего мне не понятно, как делается собственно верификация, как используются результаты нейросети. Зачем столько LSTM уровеней и так далее.</div></div><br>
А почему нет ? Я это проверял. Так и есть, сеть переобучается (overfitting), как это побороть, сложно представить. После каждого пакета прогонять на тестовых и ловить момент, когда на тестовых начнется рост ошибки (chekpoint) ???<br>
Сейчас запускал обычную сеть с 1 скрытым слоем LSTM с 50 юнитами. Прогнал один раз на 1000 + 1000 записях (1000 разл людей + 10*100 (повторений) диктора), выходной слой 2 юнита FullyConnectedLinearLayer. Ошибка 2 рода 0.5, 1 рода 0.05. Практически такие же результаты получал на DNN с 4 H слоями по 300 юнитов, но обучалось значительно дольше и результат все же хуже чем у LSTM.<br>
Сейчас, использовал (тестировал) модель след образом, подавал на вход тестовые записи и смотрел какой выход (из двух) превысит другой.<br>
<br>
До этого, использовал описанную выше сеть следующим образом. Обучал две сети, делал на подобие x-vector extractor. <br>
<br>
Первая (frame lavel) состояла из   LSTM (300) и выходного слоя 2 FullyConnectedLinearLayer (два выхода с ReLU), после обучения выходной слой отбрасывался. Далее прогонял через обученную сеть фреймы (MFCC, пробовал и др), выход брал из LSTM (как и писал что откидывал FullyConnectedLinearLayer после обучения) и усреднял выходные кадры (наподобие statistic pooling), полученные усреднения сохранял в контейнер и учил на них следующую сеть.<br>
<br>
Вторая сеть (Feature lavel) состояла из 2 FullyConnectedDNNLayer с ReLU по 300 юнитов каждый и выходной 2 FullyConnectedLinearLayer (два выхода с ReLU). После обучения второй сети, прогонял тестовые данные и брал с первого скрытого слоя (300 DNN который), далее считал коэф корреляции <em class='tag-i'>(вместо PLDA,  хотя FullyConnectedLinearLayer  считает ту же корреляцию)</em>, с сохраненным заранее усредненным вектором полученным на обучающих данных из этой же сети, но всё таки делал как делал. В общем пытался извлечь x-vector. <br>
В итоге после обучения получилось две сети следующая одна за другой MFCC -&gt; LSTM(300) -&gt; DNN(300) -&gt; коэф кор (&gt; 0.5 ?).<br>
<br>
Кстати пытался и совмещать обе сети, путем добавления слоя statistic pooling (embedded layer), но обучается такое очень тяжко, интересно во время обучения ошибка (loos error) на какое то время зависает на 0.5, потом как будто прорывает и быстренько добирается до заданного значения (0.05). Брал выход так же с Feature lavel первого скрытого слоя и так же считал корреляцию, но результат такой же.<br>
<br>
Ответ на вопрос - почему было так много LSTM слоев, отвечаю, пытался делать как описано в статьях, но видать там делали немного иначе и это было описано, в статьях везде делаю выходной слой с 1000 (большим количеством) FullyConnectedLinearLayer, т.е. нужно уметь отличать каждого из 1000 дикторов. Мне же нужно отделить одного из 1000.]]></description>
        <author>Abraziv</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3802059</guid>
        <pubDate>Mon, 24 Jun 2019 21:58:25 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3802059</link>
        <description><![CDATA[nsh: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414740&view=findpost&p=3801965'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Abraziv &#064; <time class="tag-quote__quoted-time" datetime="2019-06-23T03:04:10+00:00">23.06.19, 03:04</time></span><div class='quote '>но это же влияет только на вероятность ложной тревоги (ошибку первого рода), а у меня как раз с этим проблема</div></div><br>
<br>
Нет конечно. На таких маленьких данных ничего просто не научится нормально, как раз и будет переобучаться. Кроме того из описания ничего мне не понятно, как делается собственно верификация, как используются результаты нейросети. Зачем столько LSTM уровеней и так далее.]]></description>
        <author>nsh</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801965</guid>
        <pubDate>Sun, 23 Jun 2019 03:04:10 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801965</link>
        <description><![CDATA[Abraziv: nsh, спасибо за ответ. Попробую то что по ссылке. Правда хочется довести своё до ума, это как бросить всё на пол пути...<br>Опять же, вы говорите, что нужно увеличить количество записей обучения, но это же влияет только на вероятность ложной тревоги (ошибку первого рода), а у меня как раз с этим проблема. Обучал и на 400, тогда система начинает искать только выборку (дикторов) на которой обучался, всё остальное относит к &quot;не цель&quot;.]]></description>
        <author>Abraziv</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801956</guid>
        <pubDate>Sat, 22 Jun 2019 20:27:28 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801956</link>
        <description><![CDATA[nsh: Можно ещё попробовать<br>
<br>
<a class='tag-url' href='https://github.com/WeidiXie/VGG-Speaker-Recognition' target='_blank'>https://github.com/WeidiXie/VGG-Speaker-Recognition</a><br>
<br>
главное что базу на voxceleb надо учить, а не на 20 записях.]]></description>
        <author>nsh</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801920</guid>
        <pubDate>Sat, 22 Jun 2019 12:37:50 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801920</link>
        <description><![CDATA[Abraziv: Вообщем ерунда почему-то. Увеличение количества записей приводит к ухудшению работы системы. Как быть...]]></description>
        <author>Abraziv</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801901</guid>
        <pubDate>Sat, 22 Jun 2019 08:23:46 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801901</link>
        <description><![CDATA[Abraziv: Спасибо за ответ. Я правильно понимаю, что количество записей влияет только на вероятность ложной тревоги?<br>Реализовал некоторое подобие x-vector extractor:<br>24 MFCC -&gt; 100(LSTM) -&gt; 100(LSTM) -&gt; 2(FullyConnectedLinearLayer) -&gt; Брал последние 100 значений с последнего слоя LSTM (с обученной предыдущей сети до 0.98), далее обучал  -&gt; 1024(DNN ReLU)-&gt;1024(DNN ReLU)-&gt;1024(DNN ReLU)-&gt;2(FullyConnectedLinearLayer)<br>обучал на 20 (10/10) записях. Вероятность пропуска цели на тестовых записях 0.4. Как-то не очень. Взял сейчас добавил дельт к MFCC и увеличил количество юнитов в слоях LSTM до 200, выборку обучения до 100(50/50). Не знаю что будет на выхлопе, но где-то систематическая ошибка мне кажется, что-то делаю не так.]]></description>
        <author>Abraziv</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801899</guid>
        <pubDate>Sat, 22 Jun 2019 08:02:33 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801899</link>
        <description><![CDATA[nsh: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414740&view=findpost&p=3801518'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Abraziv &#064; <time class="tag-quote__quoted-time" datetime="2019-06-17T13:49:33+00:00">17.06.19, 13:49</time></span><div class='quote '>Для обучения подавал около 100 записей (MFCC) произвольных людей чередуемых с записями интересующего диктора (записей диктора меньше 100, поэтому циклически повторял).</div></div><br>
<br>
Этого мало для хороших моделей.]]></description>
        <author>nsh</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801518</guid>
        <pubDate>Mon, 17 Jun 2019 13:49:33 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801518</link>
        <description><![CDATA[Abraziv: Спасибо за ответ. Надеялся увидеть код C++ =). Подвох везде. Откуда взялся этот скрипт ???)<br><br>Хотел посоветоваться с профи. Пытался решить задачу распознавания тесктонезависимого диктора с помощью нейронной сети LSTM.<br>Делал следующим образом. Брал массив аудио записей различных людей и массив интересующего диктора. <br>Вычислял признаки MFCC (13, filter=24,prephase=0.96, lifter, перекрытие = 0.5) и обучал LSTM сеть (2 слоя 100-&gt;100).<br>Для обучения подавал около 100 записей (MFCC) произвольных людей чередуемых с записями интересующего диктора (записей диктора меньше 100, поэтому циклически повторял). Самое интересное что для малого количества записей произвольных людей пропуск цели был всего 0.2, вероятность ложной тревоги 0.05, но мне этого показалось мало. Ошибку считал как суммарное превышение выходов сети на всем векторе MFCC (брал не последнее значение на выходе). Увеличил число записей людей со 100 до 200 и все перестало работать (пропуск цели 1). Только на некоторых дикторах работает, но с большим пропуском цели. Так же обучение доводил где то до 0.90-0.95, если обучить больше, то система начинает находить только те записи диктора на которых она училась и ВСЁ. Может есть у кого мысля, как побороть данное явление, работа проделана большая, не хочу все бросить и переключиться на Калди, с которой не факт, что разберусь. Время ограничено к сожалению.]]></description>
        <author>Abraziv</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801315</guid>
        <pubDate>Thu, 13 Jun 2019 22:26:56 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801315</link>
        <description><![CDATA[nsh: <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;</div><div class="code_line">&nbsp;&nbsp; &nbsp;extract-segments scp:$spk_dir/wav.scp $spk_dir/segments ark:- | \</div><div class="code_line">&nbsp;&nbsp; &nbsp;compute-mfcc-feats --verbose=2 --config=$model_dir/conf/mfcc_xvector.conf ark:- ark:$xvector_dir/feats.ark </div><div class="code_line">&nbsp;&nbsp; &nbsp;compute-vad --config=$model_dir/conf/vad.conf ark:$xvector_dir/feats.ark ark,scp:$xvector_dir/vad.ark,$xvector_dir/vad.scp</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;feat=&quot;ark:apply-cmvn-sliding --norm-vars=false --center=true --cmn-window=300 ark:$xvector_dir/feats.ark ark:- | select-voiced-frames ark:- scp:$xvector_dir/vad.scp ark:- |&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;nnet3-xvector-compute --use-gpu=no --min-chunk-size=25 --chunk-size=-1 \</div><div class="code_line">&nbsp;&nbsp; &nbsp; &quot;nnet3-copy --nnet-config=$model_dir/xvector_speaker/extract.config $model_dir/xvector_speaker/final.raw - |&quot; &quot;$feat&quot; ark,t,scp:$xvector_dir/xvector.ark,${xvector_dir}/xvector.scp</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>nsh</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801223</guid>
        <pubDate>Thu, 13 Jun 2019 07:10:53 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3801223</link>
        <description><![CDATA[Abraziv: Собрал Kaldi под Windows, вроде работает. Теперь нужно разобраться, как извлечь i-vector. <br>Оказалось совсем не тривиально разобраться в Kaldi, а точнее в примерах, очень много не ясных этапов (шагов). Есть у кого реальный пример извлечения текстонезависимых признаков говорящего с помощью Kaldi???]]></description>
        <author>Abraziv</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3798403</guid>
        <pubDate>Wed, 08 May 2019 21:44:36 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3798403</link>
        <description><![CDATA[nsh: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=414740&view=findpost&p=3797811'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Abraziv &#064; <time class="tag-quote__quoted-time" datetime="2019-05-02T06:14:14+00:00">02.05.19, 06:14</time></span><div class='quote '>Kaldi (который под Linux)</div></div><br>
<br>
Kaldi под Windows тоже хорошо работает, надо только по инструкции собрать.]]></description>
        <author>nsh</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3797811</guid>
        <pubDate>Thu, 02 May 2019 06:14:14 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3797811</link>
        <description><![CDATA[Abraziv: Google говорит, что схема следующая: MFCC -&gt; GMM -&gt; (обучение i-vector extractor) -&gt; i-vector<br>Готовая реализация, как я понял есть только в Kaldi (который под Linux) и пакетах python.]]></description>
        <author>Abraziv</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3797777</guid>
        <pubDate>Wed, 01 May 2019 17:12:49 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3797777</link>
        <description><![CDATA[neurofish: google: i-vector]]></description>
        <author>neurofish</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3797743</guid>
        <pubDate>Wed, 01 May 2019 01:30:49 +0000</pubDate>
        <title>Признаки для идентификации диктора</title>
        <link>https://forum.sources.ru/index.php?showtopic=414740&amp;view=findpost&amp;p=3797743</link>
        <description><![CDATA[Abraziv: Доброго времени. Какие признаки лучше всего использовать для идентификации диктора ??? Планирую использовать MFCC + LSTM.]]></description>
        <author>Abraziv</author>
        <category>Речевые Технологии</category>
      </item>
	
      </channel>
      </rss>
	