Форум сайта python.su
День добрый, товарищи выложил свой код на github, прошу дать комментарии и по оформлению кода, и по его оптимизации, и если будет время то потестировать его. (Пишите все что посчитаете нужным!)
Скрип выделает Mel коэффициенты из wav файла, пример использования в методе view. Добавил визуализации и поэтапный вывод информации чтобы было понятнее что происходит.
PS. Данные коэффициенты используются для работы с распознаванием речи.
Отредактировано noob_saibot (Янв. 25, 2016 13:54:35)
Офлайн
Магические числа, PEP8 (пробелы вокруг операторов).
Строка 202
smp = 1.0/self.nfft * np.square(smp) fbank = self.bank(prm[2], len(smp[0]))
h = 700*(np.exp(h/1125.0)-1) .......... plt.plot([h[x-1], h[x], h[x+1]], [0, 1, 0])
for tmp in h:
Отредактировано FishHook (Янв. 18, 2016 10:12:58)
Офлайн
FishHookВас понял, исправил.
PEP8 (пробелы вокруг операторов)
FishHookНо ведь:
smp - число, что вы по индексу получить пытаетесь?
print type(smp) <type 'numpy.ndarray'>
FishHookКакая то конкретная ошибка? На винде и дебиане под 2.7 у меня работает
Оно же не работает.
Офлайн
Да я не запускал. В моём понимании результатом арифметических действий над числом с плавающей точкой должно быть число с плавающей точкой. Если у тебя массив получается, ну и бог с ним. Но как-то это вообще не явно.
Офлайн
1. Посмотрите в другие проекты. Есть разница между docstring и комментариями. Они по разному используются. Очень режет глаз.
2. Чтобы не косячить с PEP8 используйте сразу готовую IDLE. PyCharm, например, сразу все необходимое подчеркнет. И Вы не исправили, как бы не было прискорбно
3. enumerate да и в сторону itertools гляньте на досуге (в одном месте есть, а в других нет).
4. Тестов нет. Вообще никаких.
5. Перехват ошибок, логгирование.
6. Ну и как написал высокоуважаемый FishHook именование переменных - это просто жесть.
P.S. Когда проджект выкладывают все же стараются написать какую-никакую документацию. Скажу больше. Это самая задротная часть. Для упрощения ее используют специально отформатированные docstring и sphinx.
P.P.S. Вы на правильном пути. Удачи.
Отредактировано 4kpt_IV (Янв. 18, 2016 11:41:59)
Офлайн
Спасибо за советы, поскольку усидчивостью никогда не страдал, исправления затянутся
Офлайн
noob_saibot
Спасибо за советы, поскольку усидчивостью никогда не страдал, исправления затянутся
Офлайн
4kpt_IVВставил докстринги.
1. Посмотрите в другие проекты. Есть разница между docstring и комментариями. Они по разному используются. Очень режет глаз.
4kpt_IVТеперь отредактировал согласно: "If operators with different priorities are used, consider adding whitespace around the operators with the lowest priority(ies). Use your own judgment;"
2. Чтобы не косячить с PEP8 используйте сразу готовую IDLE. PyCharm, например, сразу все необходимое подчеркнет. И Вы не исправили, как бы не было прискорбно
4kpt_IVДобавил и отредактировал.
3. enumerate да и в сторону itertools гляньте на досуге (в одном месте есть, а в других нет).
4kpt_IVДобавил.
4. Тестов нет. Вообще никаких.
4kpt_IVДобавил.
5. Перехват ошибок, логгирование.
4kpt_IVА тут не могли бы вы рассказать подробнее?
6. Ну и как написал высокоуважаемый FishHook именование переменных - это просто жесть.
Офлайн
smp2
Что это???
Быстро глянул и…
1. Опять “недоредактировали” PEP.
2. Логгируют не только error'ы
P.S. В остальном хорошо для первого раза.
Отредактировано 4kpt_IV (Янв. 19, 2016 11:59:38)
Офлайн
4kpt_IVСтранно, у меня полно дебагов…
2. Логгируют не только error'ы
4kpt_IVИ пеп читал и PyCharm уже ничего не видит. Если вас не затруднит может главу укажите? Или там по всем главам недочет?))
1. Опять “недоредактировали” PEP
4kpt_IVВас понял.
smp2
Что это???
Отредактировано noob_saibot (Янв. 19, 2016 15:03:17)
Офлайн