-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtraining.py
51 lines (42 loc) · 1.44 KB
/
training.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Trening mówców i wyświetlanie wykresów.
import os
import numpy as np
import matplotlib.pyplot as plt
from scipy.io.wavfile import read
from LBG import lbg
from Metoda_MFCC import mfcc
# Dane początkowe.
nSpeaker = 7
nCentroid = 8 # Potęga 2.
nfiltbank = 10
# Tworzenie pustej przestrzeni.
codebooks_mfcc = np.empty((nSpeaker, nfiltbank, nCentroid))
# Wskazanie katalogu gdzie przechowywane są pliki do trenowania.
directory = os.getcwd() + "/train"
# Pętla wczytania pliku, trenowania i pokazywania wykresu.
for i in range(nSpeaker):
fname = "/s" + str(i + 1) + ".wav"
print("Trenowany mówca nr: ", str(i + 1))
# Wczytanie pliku.
(fs, s) = read(directory + fname)
# Zastosowanie metody trenującej.
mel_coeff = mfcc(s, fs, nfiltbank)
codebooks_mfcc[i, :, :] = lbg(mel_coeff, nCentroid) ####Joanna changed
# Tworzenei wykresu.
plt.figure(i + 1)
plt.title(
"Codebook dla mówcy " + str(i + 1) + " z " + str(nCentroid) + " centroidami"
)
plt.xlabel("Liczba cech")
ax1 = plt # dla kilku subplot(2, 1, 1)
plt.ylabel("MFCC")
for j in range(nCentroid):
ax1.stem(
codebooks_mfcc[i, :, j],
use_line_collection=True,
linefmt="C2-.",
markerfmt="C8o",
)
# Ustawienie na False powoduje że program się nie zatrzymuje ale nie widać wykresów.
plt.show(block=True)
print("Trening zakończono. Przejście do dopasowywania mówców. ")