2.2. Algorytmy detekcji artefaktów 19
2.2. Algorytmy detekcji artefaktów 19
Rysunek 2.6: Schemat blokowy kodera algorytmu LPC-10
ści bądź bezdźwięczności danego fragmentu. W tablicy 2.2 przedstawiono fragment kodu programu Mat lab odpowiadający za detekcję głosek dźwięcznych i bezdźwięcznych. Został on wykorzystany do testowania zebranych fragmentów mowy jako element głównego algorytmu.
W późniejszej fazie projektowania aplikacji okazało się, że zaproponowany algorytm posiada zbyt dużą złożoność obliczeniową, aby mógł działać w czasie rzeczywistym. Powodem tego jest wykorzystywanie funkcji autokorelacji w postaci sumy, której obliczenie zajmowało czas około 10 razy dłuższy niż w przypadku innych algorytmów. Co prawda istnieją sposoby obliczania funkcji autokorelacji na podstawie widma sygnału, jednak wiązałoby się to z przeprowadzaniem transformaty Fouriera oraz późniejszego powrotu do dziedziny czasu. W tym przypadku użycie tego algorytmu nie zmniejszyłoby
1 for k = 0 : Nhamming-1
2 r(k+l) = sum( bx(l : Nhamming-k) .* bx(l+k : Nhamming) );
3 end
4 offset = 20;
s rmax = max(r(offset : Nhamming));
6 imax = find(r == rmax);
7 if ( rmax > 0.35*r(l) )
s else
Tabela 2.1: Fragment kodu odpowiadający za detekcję głosek dźwięcznych
T. Balawajder Aplikacja mobilna ułatwiająca eliminację nawyku mówienia „yyyy” podczas prezentacji.