Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой проект артём написанный.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
470 Кб
Скачать
☆

Заключение

В ходе выполнения курсового проекта проведено исследование на обнаружение и кодирование пауз .Для этого была использована технология Voice Activity Detector , который выделяет во входном речевом сигнале активную речь и паузы, а также производить их восстановление.

Тем самым, технология VAD уменьшает количество отсчетов сигнала, позволяя экономить на передаче данных по каналу связи, так как перерыв в речи не оцифровывается и не кодируется, таким образом «пустые» пакеты с тишиной не передаются по сети.

  1. Технология VAD уменьшает количество отсчетов сигнала, позволяя экономить на передаче данных по каналу связи, так как перерыв в речи не оцифровывается и не кодируется, и, таким образом «пустые» пакеты с тишиной не передаются по сети.

  2. Исходя из полученных сигналов следует, что если длинна окна маленькая 50 отчётов ,то появляется опасность потери невокализованных звуков, т.е. принятие их за шум , что приведёт к тому что разборчивость речи упадёт ,что бы невокализованные звуки не пропали при восстановлении нужно выбирать длину окна 100 отчётов

  3. Анализируя воздействия шумов на сигнал следует, что с увеличением мощности шума активную речь и паузы труднее находить и могут пропадать некоторые звуки

Список использованных источников

  1. Ричард Лайонс «Цифровая обработка сигналов», Бином-Пресс, 2009г.

  2. А.Б. Сергиенко «Цифровая обработка сигналов» БХВ-Петербург, 2011г.

  3. Эммануил Айфичер, Барри Джервис «Цифровая обработка сигналов: практический подход», Издательство «Вильямс», 2004г.

  4. А.И. Солонина, С.М. Арбузов «Цифровая обработка сигналов. Моделирование в 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');