Bir ses sinyalinin hece başlangıç noktalarını bulmak amacıyla aşağıdaki kodları kullanıyorum.
Ancak en az 4 dk sonra ekrana çıktı alıyorum. Veri setim büyük değil. Yalnızca 2 saniyelik bir ses sinyali kullanıyorum. Ayrıca karmaşık fonksiyonlarım da yok. Yavaşlama neden olabilir?
[x1, fs1] = audioread(ses1);
desiredLength = 2; % saniye cinsinden istenen uzunluk
minLength = round(fs1 * desiredLength);
x1 = x1(1:minLength);
t1 = 0:1/fs1:(2 – 1/fs1); % 1 saniye süresince örneklenmiş zaman vektörü
enerji1 = x1.^2;
enerji_esik_degeri1 = 0.03 * max(enerji1);
% Enerji seviyesi eşik değerini aşan bölgeleri bul
hece_baslangic_indeksleri1 = find(enerji1 > enerji_esik_degeri1);
% Bulunan hece başlangıç indekslerini grafik üzerinde işaretle
figure;
plot(t1, x1);
hold on;
plot(t1(hece_baslangic_indeksleri1), x1(hece_baslangic_indeksleri1), 'ro', 'MarkerSize', 10);
title('Ses Sinyali 1 ve Hecelerin Başlangıç Noktaları 1');
xlabel('Zaman (s)');
ylabel('Amplitüd');
% Heceleri gösteren çizgileri çiz
for i = 1:length(hece_baslangic_indeksleri1)
line([t1(hece_baslangic_indeksleri1(i)), t1(hece_baslangic_indeksleri1(i))], ylim, 'Color', 'g', 'LineStyle', '–');
end
legend('Ses Sinyali 1', 'Hecelerin Başlangıç Noktaları 1', 'Heceler');
Kodu çalıştırmadan önce matlab komut satırına "profile on", kod çalıştırdıktan sonra "profile viewer" yazarak darboğazın ne olduğunu görebilirsiniz. Darboğazı belirledikten sonra hızlandırma seçeneklerini değerlendirebiliriz. Profiler, ölçüm yaparak çalıştırdığı için, kodu daha da yavaşlatacaktır "profile off" yazarak da kapatırsınız.
Uyguladım ve sonuca bağlı işlemleri yapınca hızlanma sağlandı. Çok teşekkür ederim.
Uyguladım ve sonuca bağlı işlemleri yapınca hızlanma sağlandı. Çok teşekkür ederim.
Uyguladım ve sonuca bağlı işlemleri yapınca hızlanma sağlandı. Çok teşekkür ederim.
Uyguladım ve sonuca bağlı işlemleri yapınca hızlanma sağlandı. Çok teşekkür ederim.