- •Введение
- •1.2 Преобразование речевых данных при сжатии
- •1.3 Сжатие речевых данных на основе кодирования пауз в речевых сообщениях
- •1.3.1 Алгоритмы реализации детектора активности речи (vad-Voice Activity Detector)
- •2. Обнаружение и кодированию пауз на основе технологии vad
- •2.1 Исследование на примере речи диктора – мужчины
- •2.1.1 Обнаружение и кодированию пауз на основе технологии vad
- •Приложение
- •Заключение
- •Список использованных источников
- •07001209.210700.092.Пзкп
Заключение
В ходе выполнения курсового проекта проведено исследование на обнаружение и кодирование пауз .Для этого была использована технология Voice Activity Detector , который выделяет во входном речевом сигнале активную речь и паузы, а также производить их восстановление.
Тем самым, технология VAD уменьшает количество отсчетов сигнала, позволяя экономить на передаче данных по каналу связи, так как перерыв в речи не оцифровывается и не кодируется, таким образом «пустые» пакеты с тишиной не передаются по сети.
Технология VAD уменьшает количество отсчетов сигнала, позволяя экономить на передаче данных по каналу связи, так как перерыв в речи не оцифровывается и не кодируется, и, таким образом «пустые» пакеты с тишиной не передаются по сети.
Исходя из полученных сигналов следует, что если длинна окна маленькая 50 отчётов ,то появляется опасность потери невокализованных звуков, т.е. принятие их за шум , что приведёт к тому что разборчивость речи упадёт ,что бы невокализованные звуки не пропали при восстановлении нужно выбирать длину окна 100 отчётов
Анализируя воздействия шумов на сигнал следует, что с увеличением мощности шума активную речь и паузы труднее находить и могут пропадать некоторые звуки
Список использованных источников
Ричард Лайонс «Цифровая обработка сигналов», Бином-Пресс, 2009г.
А.Б. Сергиенко «Цифровая обработка сигналов» БХВ-Петербург, 2011г.
Эммануил Айфичер, Барри Джервис «Цифровая обработка сигналов: практический подход», Издательство «Вильямс», 2004г.
А.И. Солонина, С.М. Арбузов «Цифровая обработка сигналов. Моделирование в MATLAB» БХВ-Петербург, 2008г.
Приложение
clc
clear
close all
[X,Fs,bits]=wavread('Жизнь - веселый карнавал.wav');
X = awgn(X,25);
C = 50;
N = floor(length(X)/C);
N_ost = length(X) - N*C;
old_X = X;
H = max(X)+50;
start = 1;
P_sred = 0;
K=1;
delay_count = 0;
best_count = 0;
for i =0:1:C-1
stop = (i+1)*N;
% temp_X1(i+1,:) = X(start:stop);
temp_X = X(start:stop);
P = 0;
for j = 1:length(temp_X)
P = P + temp_X(j)^2;
end
P_sred = P_sred+P;
if(P < H)
best_count = best_count + 1;
temp_P_sred = P_sred/best_count;
H = K*temp_P_sred;
delay_count = delay_count + 1;
delay_i(delay_count) = i+1;
X(start:stop) = 7;
end
start=stop+1;
end
alpha_pop = delay_count/C;
alpha_lop = (C-delay_count)/C;
for i = 1:N_ost
temp_X = X((stop+1):(stop+N_ost));
P = 0;
for j = 1:length(temp_X)
P = P + temp_X(j)^2;
end
P_sred = P_sred+P;
if(P < H)
best_count = best_count +1;
temp_P_sred = P_sred/best_count;
H = K*temp_P_sred;
delay_count = delay_count + 1;
delay_i(delay_count) = C+1;
X(stop+1:stop+N_ost) = 7;
end
end
count = 0;
for i=1:length(X)
if X(i) ~= 7
count = count+1;
new_X(count) = X(i);
end
end
figure(1)
subplot(2,1,1)
plot(old_X)
subplot(2,1,2)
plot(new_X)
figure(2)
hold on
plot(old_X)
plot(new_X)
hold off
K_sgat = length(new_X)/length(old_X);
wavwrite(new_X,'new_trash');
%восстановление
cnt=1;
start=1;
temp_stop_count = 0;
temp_start = 1;
for i = 1:1:C+1
temp_num = delay_i(cnt);
stop = i*N;
if i == C+1 && i == temp_num
vos_X(start+1:start+N_ost-1) = 0;
elseif i == temp_num
cnt = cnt + 1;
vos_X(start:stop) = 0;
else
temp_stop_count = temp_stop_count + 1;
temp_stop = temp_stop_count*N;
vos_X(start:stop) = new_X(temp_start:temp_stop);
temp_start = temp_stop + 1;
end
start = stop + 1;
end
figure(3)
subplot(2,1,1)
plot(old_X)
subplot(2,1,2)
plot(vos_X)
figure(4)
hold on
plot(old_X,'-r')
plot(vos_X,'-b')
legend('Исходный','Восстановленный')
hold off
wavwrite(vos_X,'vos_trash');
