Здравствуйте!
Установил ваш проект на чистый Debian в LXC-контейнере. В целом приложение интересное и нужное, спасибо! Ниже - список проблем, с которыми я столкнулся, и как их решил.
-
Запуск приложения
Сделал: python3 -m flask run --host=0.0.0.0
Ожидал: приложение запустится (как написано в README)
Получил: Error: Could not locate a Flask application
Решение:
Нужно явно указывать приложение:
FLASK_APP=app.py python3 -m flask run --host=0.0.0.0
Лучше добавить в README несколько вариантов запуска, хотя это мелочь
-
Отсутствующий onnxruntime
Сделал: pip3 install -r requirements.txt Получил: ModuleNotFoundError: No module named 'onnxruntime'
Решение: Нужно добавить onnxruntime в requirements.txt.
-
UnboundLocalError: local variable 'torch' referenced before assignment
Получил: ошибку при попытке загрузить список голосов (/voices) и при генерации.
Место: converter.py → PreloadModel() (строка ~225)
Решение:
Внутри условий if 'silero' == engine: добавить import torch перед использованием, либо добавить import torch в начало функции PreloadModel().
После того как добавил, список голосов появился. НО - голос применяется только после рестарта приложения
-
Путь к ffmpeg
использовал default.cfg из репозитория
Получил: FFMPEG_PATH = 'ffmpeg/ffmpeg.exe' (Windows-путь)
Решение:
В Linux нужно:
FFMPEG_PATH = '/usr/bin/ffmpeg' или просто ffmpeg
Лучше сделать автоопределение через shutil.which('ffmpeg') при старте.
- Имена выходных аудиокниг
Сделал: загрузил книгу Моя книга.txt
Ожидал: аудиокнига будет названа похоже на исходный файл или по названию книги
Получил: ebccbd95-997d-4f13-8d76-a6d4c944032d.mp3
Решение/предложение:
Для обычных .txt файлов (или если название не удалось вытянуть) делать fallback на оригинальное имя файла (без расширения), если не удалось распарсить метаданные. Или возможность задать руками название.
Хуже всего, что в начале движок читает этот UID - может стоит добавить опцию читать ли название?
Чего еще не хватает:
- возможность выгружать готовые аудио-книги из веб-интерфейса. Если приложение стоит на сервере, приходится монтировать папку и вытягивать руками, да и не сразу понятно, прочиталась ли книга, поэтому:
- хорошо бы по окончанию подтверждение статуса, что книга прочитана
- возможность изменить скорость чтения
Здравствуйте!
Установил ваш проект на чистый Debian в LXC-контейнере. В целом приложение интересное и нужное, спасибо! Ниже - список проблем, с которыми я столкнулся, и как их решил.
Запуск приложения
Сделал:
python3 -m flask run --host=0.0.0.0Ожидал: приложение запустится (как написано в README)
Получил: Error: Could not locate a Flask application
Решение:
Нужно явно указывать приложение:
FLASK_APP=app.py python3 -m flask run --host=0.0.0.0Лучше добавить в README несколько вариантов запуска, хотя это мелочь
Отсутствующий
onnxruntimeСделал:
pip3 install -r requirements.txtПолучил:ModuleNotFoundError: No module named 'onnxruntime'Решение: Нужно добавить onnxruntime в requirements.txt.
UnboundLocalError: local variable 'torch' referenced before assignmentПолучил: ошибку при попытке загрузить список голосов (/voices) и при генерации.
Место: converter.py → PreloadModel() (строка ~225)
Решение:
Внутри условий if 'silero' == engine: добавить import torch перед использованием, либо добавить import torch в начало функции PreloadModel().
После того как добавил, список голосов появился. НО - голос применяется только после рестарта приложения
Путь к ffmpeg
использовал default.cfg из репозитория
Получил:
FFMPEG_PATH = 'ffmpeg/ffmpeg.exe'(Windows-путь)Решение:
В Linux нужно:
FFMPEG_PATH = '/usr/bin/ffmpeg'или просто ffmpegЛучше сделать автоопределение через shutil.which('ffmpeg') при старте.
Сделал: загрузил книгу
Моя книга.txtОжидал: аудиокнига будет названа похоже на исходный файл или по названию книги
Получил:
ebccbd95-997d-4f13-8d76-a6d4c944032d.mp3Решение/предложение:
Для обычных .txt файлов (или если название не удалось вытянуть) делать fallback на оригинальное имя файла (без расширения), если не удалось распарсить метаданные. Или возможность задать руками название.
Хуже всего, что в начале движок читает этот UID - может стоит добавить опцию читать ли название?
Чего еще не хватает: