NameError: имя 'модель' не определено в коде Python для изолированного распознавания речи - PullRequest
1 голос
/ 07 апреля 2019

Я скачал код с https://github.com/prakashpandey9/IsolatedSpeechRecognition

Этот код был совместим с Python 2, и я написал его для Python 3.

Но я получаю эту ошибку:

~/Desktop/IsolatedSpeechRecognition-master $ python Isolated_Speech_Recognition.py 
    List of spoken words: ['dog', 'human', 'god', 'eye', 'book', 'fast', 'apple', 'cat']
    {'book', 'human', 'fast', 'apple', 'god', 'cat', 'dog', 'eye'}
    Number of total files: 120
    Labels and label indices [6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 1. 1. 1. 1. 1. 1. 1. 1. 1.
     1. 1. 1. 1. 1. 1. 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 7. 7. 7.
     7. 7. 7. 7. 7. 7. 7. 7. 7. 7. 7. 7. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
     0. 0. 0. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 3. 3. 3. 3. 3. 3.
     3. 3. 3. 3. 3. 3. 3. 3. 3. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5. 5.]
    (120, 3841)
    Processed observation 0
    Processed observation 10
    Processed observation 20
    Processed observation 30
    Processed observation 40
    Processed observation 50
    Processed observation 60
    Processed observation 70
    Processed observation 80
    Processed observation 90
    Processed observation 100
    Processed observation 110
    (120, 7, 33)
    Traceback (most recent call last):
      File "Isolated_Speech_Recognition.py", line 269, in <module>
        _ = [model.train(X_train[y_train == y, :, :]) for m, y in zip(ms, ys)]
      File "Isolated_Speech_Recognition.py", line 269, in <listcomp>
        _ = [model.train(X_train[y_train == y, :, :]) for m, y in zip(ms, ys)]
    NameError: name 'model' is not defined

это фрагмент кода, в котором я получаю сообщение об ошибке:

from sklearn.model_selection import StratifiedShuffleSplit
sss = StratifiedShuffleSplit(test_size=0.1, random_state=0)

for n,i in enumerate(all_obs):
    all_obs[n] /= all_obs[n].sum(axis=0)


for train_index, test_index in sss.split(all_obs, all_labels):
    X_train, X_test = all_obs[train_index, ...], all_obs[test_index, ...]
    y_train, y_test = all_labels[train_index], all_labels[test_index]
ys = set(all_labels)
ms = [gmmhmm(7) for y in ys]

_ = [model.train(X_train[y_train == y, :, :]) for m, y in zip(ms, ys)]
ps1 = [model.test(X_test) for m in ms]
res1 = np.vstack(ps1)
predicted_label1 = np.argmax(res1, axis=0)
dictionary = ['apple', 'banana', 'elephant', 'dog', 'frog', 'cat', 'jack', 'god', 'Intelligent', 'hello']
spoken_word = []
for i in predicted_label1:
    spoken_word.append(dictionary[i])
print(spoken_word)
missed = (predicted_label1 != y_test)
print('Test accuracy: %.2f percent' % (100 * (1 - np.mean(missed))))

Я пытался, но не смог выяснить, почему я получаю эту ошибку и как ее устранить.

1 Ответ

0 голосов
/ 08 апреля 2019

Вы звоните model.train() без определения model, как указывает сообщение об ошибке.

Если модель, которую вы хотите обучить в понимании списка, это m, тогда она должна быть:

[m.train(X_train[y_train == y, :, :]) for m, y in zip(ms, ys)]

Следующая строка требует такого же изменения:

[m.test(X_test) for m in ms]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...