Найти - Пользователи
Полная версия: Первый скрипт
Начало » Центр помощи » Первый скрипт
1 2
noob_saibot
День добрый, товарищи выложил свой код на github, прошу дать комментарии и по оформлению кода, и по его оптимизации, и если будет время то потестировать его. (Пишите все что посчитаете нужным!)
Скрип выделает Mel коэффициенты из wav файла, пример использования в методе view. Добавил визуализации и поэтапный вывод информации чтобы было понятнее что происходит.

PS. Данные коэффициенты используются для работы с распознаванием речи.
FishHook
Магические числа, PEP8 (пробелы вокруг операторов).

Строка 202
smp = 1.0/self.nfft * np.square(smp)
fbank = self.bank(prm[2], len(smp[0]))
smp - число, что вы по индексу получить пытаетесь?

строка 143
        h = 700*(np.exp(h/1125.0)-1)
..........
                  plt.plot([h[x-1], h[x], h[x+1]], [0, 1, 0])
та же фигня

строка 157
for tmp in h:

h - число!
Тестить, тестить и еще раз тестить! Оно же не работает.



noob_saibot
FishHook
PEP8 (пробелы вокруг операторов)
Вас понял, исправил.

FishHook
smp - число, что вы по индексу получить пытаетесь?
Но ведь:
print type(smp)
<type 'numpy.ndarray'>
numpy.fft.rfft - out : complex ndarray
numpy.square - out : ndarray
numpy.exp - out : ndarray
Тут я вас не понял.

FishHook
Оно же не работает.
Какая то конкретная ошибка? На винде и дебиане под 2.7 у меня работает
FishHook
Да я не запускал. В моём понимании результатом арифметических действий над числом с плавающей точкой должно быть число с плавающей точкой. Если у тебя массив получается, ну и бог с ним. Но как-то это вообще не явно.
4kpt_IV
1. Посмотрите в другие проекты. Есть разница между docstring и комментариями. Они по разному используются. Очень режет глаз.
2. Чтобы не косячить с PEP8 используйте сразу готовую IDLE. PyCharm, например, сразу все необходимое подчеркнет. И Вы не исправили, как бы не было прискорбно
3. enumerate да и в сторону itertools гляньте на досуге (в одном месте есть, а в других нет).
4. Тестов нет. Вообще никаких.
5. Перехват ошибок, логгирование.
6. Ну и как написал высокоуважаемый FishHook именование переменных - это просто жесть.

P.S. Когда проджект выкладывают все же стараются написать какую-никакую документацию. Скажу больше. Это самая задротная часть. Для упрощения ее используют специально отформатированные docstring и sphinx.

P.P.S. Вы на правильном пути. Удачи.
noob_saibot
Спасибо за советы, поскольку усидчивостью никогда не страдал, исправления затянутся
4kpt_IV
noob_saibot
Спасибо за советы, поскольку усидчивостью никогда не страдал, исправления затянутся

Аналогично. Для меня самое тяжелое - исправление… Всегда откладываю в долгий-долгий ящик.
noob_saibot
4kpt_IV
1. Посмотрите в другие проекты. Есть разница между docstring и комментариями. Они по разному используются. Очень режет глаз.
Вставил докстринги.
4kpt_IV
2. Чтобы не косячить с PEP8 используйте сразу готовую IDLE. PyCharm, например, сразу все необходимое подчеркнет. И Вы не исправили, как бы не было прискорбно
Теперь отредактировал согласно: "If operators with different priorities are used, consider adding whitespace around the operators with the lowest priority(ies). Use your own judgment;"
4kpt_IV
3. enumerate да и в сторону itertools гляньте на досуге (в одном месте есть, а в других нет).
Добавил и отредактировал.
4kpt_IV
4. Тестов нет. Вообще никаких.
Добавил.
4kpt_IV
5. Перехват ошибок, логгирование.
Добавил.
4kpt_IV
6. Ну и как написал высокоуважаемый FishHook именование переменных - это просто жесть.
А тут не могли бы вы рассказать подробнее?
4kpt_IV
smp2
Что это???

Быстро глянул и…
1. Опять “недоредактировали” PEP.
2. Логгируют не только error'ы

P.S. В остальном хорошо для первого раза.
noob_saibot
4kpt_IV
2. Логгируют не только error'ы
Странно, у меня полно дебагов…
4kpt_IV
1. Опять “недоредактировали” PEP
И пеп читал и PyCharm уже ничего не видит. Если вас не затруднит может главу укажите? Или там по всем главам недочет?))
4kpt_IV
smp2
Что это???
Вас понял.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB