Comments (23)
Всё сгенерированные ответы кэшируются. Чтобы почистить кэш просто в браузере перейдите на адрес сервера/clear_cache
.
from silero-tts-service.
До авто очистки пока руки не дошли.
from silero-tts-service.
В том то и дело, что я видел GET /clear_cache - Очищает кэш уже синтезированных сообщений.
и выполнил сразу.
Получил ответ Success
Но в результате
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b92407531c1d silero-tts-service 0.43% 1.264GiB / 3.681GiB 34.34% 63MB / 17.4MB 210MB / 438MB 11
1.264GiB - это после очистки кэша.
Поэтому и написал.
from silero-tts-service.
Тогда мне сложно сказать сейчас.
from silero-tts-service.
Я без понятия где память утекает.
from silero-tts-service.
Это не критично. Как будет возможность, посмотрите. Я готов помогать искать проблемы с утечкой, если будет нужна моя помощь.
Я перевёл контейнер в фазу активного использования. И в принципе 1.2-1.3GB +/- пока постоянно.
В день - примерно 30-40 обращений к Rhasspy и 5-6 HA TTS.
В любом случае - работа Вами проделана великолепная!
Это лучшее из того, что я встречал для локального голосового управления!
from silero-tts-service.
Это не критично. Как будет возможность, посмотрите. Я готов помогать искать проблемы с утечкой, если будет нужна моя помощь.
Я перевёл контейнер в фазу активного использования. И в принципе 1.2-1.3GB +/- пока постоянно. В день - примерно 30-40 обращений к Rhasspy и 5-6 HA TTS.
В любом случае - работа Вами проделана великолепная! Это лучшее из того, что я встречал для локального голосового управления!
Вот тут странно, у меня в среднем 5 уникальных запросов в день от НА и при этом контейнер ест 250 мегабайт.
from silero-tts-service.
Ну как бы вот что мы имеем:
root@b92407531c1d:/usr/app# ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
PID PPID CMD %MEM %CPU
1 0 python3 -u ./main.py 34.2 0.5
126 0 bash 0.0 0.3
132 126 ps -eo pid,ppid,cmd,%mem,%c 0.0 0.0
133 126 head 0.0 0.0
root@b92407531c1d:/usr/app# ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n
0 MB COMMAND
0.59375 MB sort
0.996094 MB awk
3.15625 MB ps
3.73047 MB bash
1290.14 MB python3
И мы тут как не пытались загрузить нашу "Милану" TTS или голосовыми командами - получили вот так:
root@b92407531c1d:/usr/app# ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n
0 MB COMMAND
0.527344 MB sort
0.996094 MB awk
3.07812 MB ps
3.54297 MB bash
1288.71 MB python3
from silero-tts-service.
Проблема с памятью по-прежнему актуальна после еще 2-х дней эксплуатации (всего 5 суток после рестарта контейнера):
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b92407531c1d silero-tts-service 0.43% 1.54GiB / 3.681GiB 41.84% 63MB / 26.3MB 247MB / 552MB 11
...
9909ca915b28 rhasspy 29.10% 574.9MiB / 3.681GiB 15.25% 35.6GB / 2.04GB 1.34GB / 1.4GB 55
Ниже список по использованию памяти в системе:
PID PPID CMD %MEM %CPU
1264200 1264180 python3 -u ./main.py 41.4 0.5
1163836 1163809 python3 -m rhasspyasr_kaldi 11.6 5.2
429030 428965 mariadbd 7.9 0.3
1689210 625579 python3 -m homeassistant -- 7.8 5.3
1249151 1249103 node index.js 1.8 0.7
428255 1 /usr/bin/dockerd -H fd:// - 1.3 1.6
1163837 1163810 python3 -m rhasspywake_rave 0.8 10.4
426 1 /sbin/multipathd -d -s 0.7 0.0
1248885 1248854 /portainer 0.6 0.0
После рестарта контейнера:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b92407531c1d silero-tts-service 0.44% 232.3MiB / 3.681GiB 6.16% 936B / 0B 303kB / 0B 7
...
9909ca915b28 rhasspy 28.18% 529.8MiB / 3.681GiB 14.05% 35.7GB / 2.04GB 1.34GB / 1.42GB 55
После первого запроса через rhasspy с ответом "температуры за окном" (примерно 100 знаков)
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b92407531c1d silero-tts-service 0.42% 649.7MiB / 3.681GiB 17.23% 3.83kB / 586kB 24.3MB / 586kB 11
После следующего уникального запроса из 100 знаков:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b92407531c1d silero-tts-service 0.45% 809.7MiB / 3.681GiB 21.48% 7kB / 1.22MB 40.8MB / 1.22MB 11
Повторение первого запроса с ответом "температуры за окном" приводят к увеличению занятости памяти на 1.5-2MB
from silero-tts-service.
К сожалению течь памяти у моделей Silero. Я пока не знаю удастся ли вообще эту проблему починить. Пока ничего не помогает.
from silero-tts-service.
Всё проблема исправлена, правда костылём. Из-за чего запросы могут выполняться чуть дольше.
from silero-tts-service.
Здравствуйте!
А не могли бы Вы залить на докерхаб под другим тэгом образ без внесенных изменений?
Дело в том, что у меня много у кого сделаны автоматизации с таймаутами.
timeout: 00:00:20
continue_on_timeout: true
И у меня стали "выпадать" голосовые оповещения. То есть за 20 секунд не успевает отработать.
P.S. Возможно, что я не правильно понял, но вроде модели Silero помешают в память транскрипцию отдельных слов. А потом пользуются ими при комплектации текста. Если это так, то это объясняет то, что повторное сообщение о погоде, но с другими цифрами отрабатывает в 5-6 раз быстрее, чем первое.
Сейчас же получается, что 2 одинаковых сообщений о погоде отрабатывает одинаково долго.
from silero-tts-service.
Здравствуйте!
А не могли бы Вы залить на докерхаб под другим тэгом образ без внесенных изменений? Дело в том, что у меня много у кого сделаны автоматизации с таймаутами.
timeout: 00:00:20 continue_on_timeout: true
И у меня стали "выпадать" голосовые оповещения. То есть за 20 секунд не успевает отработать.
P.S. Возможно, что я не правильно понял, но вроде модели Silero помешают в память транскрипцию отдельных слов. А потом пользуются ими при комплектации текста. Если это так, то это объясняет то, что повторное сообщение о погоде, но с другими цифрами отрабатывает в 5-6 раз быстрее, чем первое. Сейчас же получается, что 2 одинаковых сообщений о погоде отрабатывает одинаково долго.
Да, поведение вы поняли правильно. Просто есть проблема что память которую они заняли не как не получается освободить. Так что я вынес синтез речи в отдельный процесс, который запускается каждый раз когда нужно что-то синтезировать. Но это плохое решение. Тут получается закономерность. Либо модели жрут много памяти и работают +- быстро или жрут мало памяти и работают долго.
from silero-tts-service.
У меня в тестах, получилось добиться жора в 4.5 гб памяти. Что есть много так как у меня на сервере всего 6.
from silero-tts-service.
Я хочу попробовать ограничить память контейнеру.
from silero-tts-service.
Я хочу попробовать ограничить память контейнеру.
Хорошо, я как домой дойду, выложу в хаб образ з отдельным лейблом, со старой генерацией речи.
from silero-tts-service.
Не знаю, относится ли это к проблеме, но:
Important Information for VAD Python Users ⚠️
If you are using the VAD in a:
multi-threaded or
a multi-process application
**Do not forget to disable gradients in EACH process and / or thread.
Otherwise memory may leak noticeably.**
Ну и вот еще snakers4/silero-models#43
from silero-tts-service.
Не знаю, относится ли это к проблеме, но:
Important Information for VAD Python Users ⚠️ If you are using the VAD in a: multi-threaded or a multi-process application **Do not forget to disable gradients in EACH process and / or thread. Otherwise memory may leak noticeably.**
Ну и вот еще snakers4/silero-models#43
VAD Это их система для обнаружения речи, для захвата её микрофоном. Silero также имеют модель stt.
from silero-tts-service.
А проблема которую вы нашли, также касается stt моделей.
from silero-tts-service.
Я хочу попробовать ограничить память контейнеру.
Ограничение памяти помогло. Но по тестам скорость все рано не много но упала.
from silero-tts-service.
Ну хоть так. А то сейчас - перебор!
Будем тестить, как зальете на докхаб!
from silero-tts-service.
Ну хоть так. А то сейчас - перебор! Будем тестить, как зальете на докхаб!
Всё новая версия в хабе.
from silero-tts-service.
Отлично! Уже в работе!
from silero-tts-service.
Related Issues (14)
- Thanks! HOT 3
- Выводить данные о скачивание и установки зависимостей в лог докера HOT 13
- Инструкция: Как вывести звук на bluetooth колонку? HOT 2
- HA assist HOT 4
- У меня было 15 <d>яблоко</d> HOT 6
- Добавить управление громкостью HOT 1
- Голос valeria не работает на ru языке HOT 1
- Start with CUDA HOT 7
- Could not initialize NNPACK! HOT 3
- Согласование склонений HOT 3
- .HA_FIX contains true HOT 9
- SAMPLE_RATE: 16000 HOT 1
- Failed to parse SSML HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from silero-tts-service.