<?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=407430&amp;view=findpost&amp;p=3643160</guid>
        <pubDate>Sun, 20 Dec 2015 21:32:13 +0000</pubDate>
        <title>Сжатие речи на основе метода линейного предсказания в MATLAB</title>
        <link>https://forum.sources.ru/index.php?showtopic=407430&amp;view=findpost&amp;p=3643160</link>
        <description><![CDATA[nsh: Простой сжатия звука на основе линейного предсказания такой:<br>
<br>
1) Звук разбивается на окна<br>
<br>
2) Для каждого окна считаются коэффициенты линейного предсказания (13) и ошибка линейного предсказания (256)<br>
<br>
3) Коэффициенты записываются как есть, значения ошибки сжимаются с помощью обычного архиватора (gzip). Из-за того, что ошибка носит случайный характер, такое сжатие эффективно. Вместо архиватора можно применять квантизацию, например, представлять каждое значение с помощью 8 бит. <br>
<br>
В результате получается сильно сжатый звук. Для декомпрессии <br>
<br>
4) Ошибка распаковывается<br>
<br>
5) По коэффициентам линейного предсказания и ошибке восстанавливается сигнал<br>
<br>
6) Окна склеиваются с наложением<br>
<br>
В вашем коде есть только 2) и 5). Для реализации нужно хотя бы на окна сигнал разбить.<br>
<br>
Простой полный код кодека можно найти здесь: <a class='tag-url' href='http://www.mathworks.com/matlabcentral/fileexchange/39038-celp-codec' target='_blank'>http://www.mathworks.com/matlabcentral/fil...9038-celp-codec</a> <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="2015-12-21T00:47:44+03:00">20.12.15, 21:47</time></span></span><br>
Вот ещё тут можно скачать попроще реализацию и с объяснениями<br>
<br>
<a class='tag-url' href='http://my.fit.edu/~vkepuska/ece5525/Projects/Fall2005/Osama%20Saraireh/speech%20final.zip' target='_blank'>http://my.fit.edu/~vkepuska/ece5525/Projec...ech%20final.zip</a>]]></description>
        <author>nsh</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407430&amp;view=findpost&amp;p=3643157</guid>
        <pubDate>Sun, 20 Dec 2015 21:16:35 +0000</pubDate>
        <title>Сжатие речи на основе метода линейного предсказания в MATLAB</title>
        <link>https://forum.sources.ru/index.php?showtopic=407430&amp;view=findpost&amp;p=3643157</link>
        <description><![CDATA[nordens: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407430&view=findpost&p=3643147'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>nordens &#064; <time class="tag-quote__quoted-time" datetime="2015-12-20T18:58:58+00:00">20.12.15, 18:58</time></span><div class='quote '>Не могу никак придумать работоспособную программу. :no-sad:  Помогите пожалуйста :&#39;(</div></div><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">clc </div><div class="code_line">clear</div><div class="code_line">&nbsp;</div><div class="code_line">[x_ish,Fs,bits]=wavread(&#39;test.wav&#39;); % загрузка файла</div><div class="code_line">% x_ish – вектор отсчетов исходного сигнала</div><div class="code_line">% Fs - частота дискретизации</div><div class="code_line">% bits - количество бит на один отсчет сигнала</div><div class="code_line">&nbsp;</div><div class="code_line">N=1000;% длина окна анализа (задается самостоятельно) </div><div class="code_line">n1=11000; %нижняя граница отрезка анализа (задается самостоятельно)</div><div class="code_line">n2=n1+N-1; % верхняя граница отрезка анализа</div><div class="code_line">X1=x_ish(n1:n2); % отрезок сигнала, соответствующий звуку</div><div class="code_line">M=sum(X1)/N;</div><div class="code_line">&nbsp;</div><div class="code_line">p=595;</div><div class="code_line">&nbsp;</div><div class="code_line">for pp=1:p</div><div class="code_line">&nbsp;</div><div class="code_line">for k=0:p</div><div class="code_line">&nbsp;&nbsp; &nbsp;s=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for m=1:(N-k)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;s=s+(X1(m)-M)*(X1(m+k)-M);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp;RR(k+1)=s;</div><div class="code_line">end</div><div class="code_line">clear k s m</div><div class="code_line">&nbsp;</div><div class="code_line">for k=1:(p+1)</div><div class="code_line">&nbsp;&nbsp; &nbsp;R(k)=RR(k)/RR(1);</div><div class="code_line">end</div><div class="code_line">clear k RR</div><div class="code_line">&nbsp;</div><div class="code_line">E(1)=R(1);</div><div class="code_line">ka(1)=R(2)/E(1);</div><div class="code_line">al(1,1)=ka(1);</div><div class="code_line">&nbsp;</div><div class="code_line">for i=2:p</div><div class="code_line">&nbsp;&nbsp; &nbsp;E(i)=(1-ka(i-1)^2)*E(i-1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;s=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for j=1:(i-1)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;s=s+al(i-1,j)*R(i-j+1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp;ka(i)=(R(i+1)-s)/E(i);</div><div class="code_line">&nbsp;&nbsp; &nbsp;al(i,i)=ka(i);</div><div class="code_line">&nbsp;&nbsp; &nbsp;for j=(i-1):-1:1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;al(i,j)=al(i-1,j)-ka(i)*al(i-1,i-j);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">end</div><div class="code_line">clear E i s j ka</div><div class="code_line">&nbsp;</div><div class="code_line">for i=1:p</div><div class="code_line">&nbsp;&nbsp; &nbsp;alpha(i)=al(p,i);</div><div class="code_line">end</div><div class="code_line">clear i al</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">B=0;</div><div class="code_line">for n=(pp+1):N</div><div class="code_line">&nbsp;&nbsp; &nbsp;A=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for k=1:pp</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;A=A+alpha(k)*(X1(n-k)-M);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp;B=B+((X1(n)-M)-A)^2;</div><div class="code_line">end</div><div class="code_line">eta(pp)=(1/(N-pp))*B;</div><div class="code_line">&nbsp;</div><div class="code_line">end;</div><div class="code_line">ppp = [1:p];</div><div class="code_line">&nbsp;</div><div class="code_line">figure(1)</div><div class="code_line">plot(ppp,eta);</div><div class="code_line">xlabel(&#39;порядок модели&#39;)</div><div class="code_line">ylabel(&#39;дисперсия&#39;)</div><div class="code_line">&nbsp;</div><div class="code_line">MAX=max(X1);</div><div class="code_line">noise=MAX*randn(1,N);</div><div class="code_line">&nbsp;</div><div class="code_line">xv(1:p)=X1(1:p);</div><div class="code_line">for i=p+1:N</div><div class="code_line">&nbsp;&nbsp; &nbsp;s=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for k=1:p</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;s=s+alpha(k)*(xv(i-k)-M);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp;xv(i)=s+eta(p)*noise(i)+M;</div><div class="code_line">end</div><div class="code_line">&nbsp;</div><div class="code_line">figure(2)</div><div class="code_line">plot([1:N],X1,[1:N],xv)</div><div class="code_line">xlabel(&#39;samples&#39;)</div><div class="code_line">ylabel(&#39;amplitude&#39;)</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>nordens</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407430&amp;view=findpost&amp;p=3643154</guid>
        <pubDate>Sun, 20 Dec 2015 20:40:44 +0000</pubDate>
        <title>Сжатие речи на основе метода линейного предсказания в MATLAB</title>
        <link>https://forum.sources.ru/index.php?showtopic=407430&amp;view=findpost&amp;p=3643154</link>
        <description><![CDATA[nsh: Шансы на конструктивый диалог на форуме повышают следующие факторы:<br><br>1) Соблюдения правил орфографии при написании сообщений<br><br>2) Подробное описание задачи, описание того, что было сделано. <br><br>3) Примеры написанного кода, пусть даже пока не работающего.]]></description>
        <author>nsh</author>
        <category>Речевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407430&amp;view=findpost&amp;p=3643147</guid>
        <pubDate>Sun, 20 Dec 2015 18:58:58 +0000</pubDate>
        <title>Сжатие речи на основе метода линейного предсказания в MATLAB</title>
        <link>https://forum.sources.ru/index.php?showtopic=407430&amp;view=findpost&amp;p=3643147</link>
        <description><![CDATA[nordens: Не могу никак придумать работоспособную программу. :no-sad:  Помогите пожалуйста :&#39;(]]></description>
        <author>nordens</author>
        <category>Речевые Технологии</category>
      </item>
	
      </channel>
      </rss>
	