LINUX.ORG.RU

Сообщения router

 

Распознавание речи, ч.2: OpenAI whisper

Форум — Talks

Доброго времени суток

10 лет назад безуспешно искал варианты распознавания речи. Не нашел, смирился

Сегодня решил вернуться к вопросу. Вспомнил, что в новостях проскакивал RTranslator 2.0.0 и 2.0.1
В описании сказано, что он использует модель ИИ «OpenAI whisper». Так, становится все интереснее :)

Идем в официальный репозиторий openai/whisper . Где-то рядом лежит инструкция, как скачать языковые модели

Итак, поехали

  1. Запускаю игровой комп с нормальной видюхой (вообще не обязательно, но для quick start пусть так)
  2. создаем venv (раньше это называлось virtualenv. среда, в которую изолированно ставятся пакеты, чтобы не разводить бардак)
router@europe:venv$ python3 -m venv whisper
router@europe:venv$ . whisper/bin/activate
(whisper) router@venv:venv$ cd whisper/
  1. теперь скачиваем whl пакеты. Т.к. они очень большие. Чтобы в следующий раз не качать
    Пакет с openai whisper называется «openai-whisper» (не путать с другими из кучи мусора pypi)
(whisper) router@venv:venv$ mkdir distribs
(whisper) router@venv:venv pip3 download openai-whisper -d distribs/ -v
[...]

(whisper) router@venv:venv$ pip3 download setuptools wheel -d distribs/ -v
[...]
  1. отлично, теперь эти же пакеты же устанавливаем (в venv «whisper»)
(whisper) router@europe:venv$ pip3 install --no-index --find-links distribs/  openai-whisper
  1. скачиваем языковые модели
    Ссылки можно взять из whisper/lib64/python3.11/site-packages/whisper/__init__.py (см выше ссылку на обсуждение в github)
    Я выбрал модели tiny (хватит даже интеграшки) и turbo (хорошая видюха позволяет)
    После скачивания нужно положить в ~/.cache/whisper/
# в 2024 году лучше скачивать не от нас
# хотя не проверял, может и не блокировали...
curl -x socks5h://127.0.0.1:5555 -O 'https://openaipublic.azureedge.net/main/whisper/models/d3dd57d32accea0b295c96e26691aa14d8822fac7d9d27d5dc00b4ca2826dd03/tiny.en.pt'
curl -x socks5h://127.0.0.1:5555 -O 'https://openaipublic.azureedge.net/main/whisper/models/aff26ae408abcba5fbf8813c21e62b0941638c5f6eebfb145be0c9839262a19a/large-v3-turbo.pt'
# актуальные ссылки нужно брать из __init__.py пакета openai-whisper
  1. берем видеофайл и выдираем из него звук
    (опять же, пока это первое знакомство. возможно, whisper сам бы это сделал, не знаю)
ffmpeg -i 01.Introduction.mp4 -vn -ar 44100 -ac 2 -b:a 192k 01.Introduction.mp3

  1. пробуем
# сначала модель tiny
(whisper) router@europe:test$ whisper 01.Introduction.mp3 --model tiny.en
/opt/venv/whisper/lib/python3.11/site-packages/whisper/__init__.py:150: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(fp, map_location=device)
[00:00.000 --> 00:07.400]  In my 20-plus years, working in and around this industry, you start to pick up a couple
[00:07.400 --> 00:08.560]  of things.
[00:08.560 --> 00:10.920]  Like for example, the pace of technology.
[00:10.920 --> 00:15.560]  It is sort of an established fact here in IT that the pace of the things that we work

[...]


# и с моделью turbo
(whisper) router@europe:test$ whisper 01.Introduction.mp3 --model turbo
[...]
Detecting language using up to the first 30 seconds. Use `--language` to specify the language
Detected language: English
[00:00.000 --> 00:07.400]  In my 20-plus years working in and around this industry, you start to pick up a couple
[00:07.400 --> 00:08.400]  of things.
[00:08.400 --> 00:10.920]  Like, for example, the pace of technology.
[00:10.920 --> 00:15.560]  It is sort of an established fact here in IT that the pace of the things that we work

  1. в другом терминале смотрю загрузку видюхи
# это с моделью tiny
router@europe:~$ nvidia-smi
[...]
|   0  NVIDIA GeForce RTX 3060        On  | 00000000:01:00.0 Off |                  N/A |
| 51%   45C    P2              40W / 170W |   1858MiB / 12288MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
[...]
|    0   N/A  N/A      5777      C   /opt/venv/whisper/bin/python3              1782MiB |

# а это с моделью turbo
[...]
|   0  NVIDIA GeForce RTX 3060        On  | 00000000:01:00.0 Off |                  N/A |
| 82%   53C    P2             123W / 170W |   5542MiB / 12288MiB |     86%      Default |
[...]
|    0   N/A  N/A      5777      C   /opt/venv/whisper/bin/python3              5466MiB |

Текст в обоих случаях распознался одинаково, можно не насиловать видюху самой тяжелой моделью, а взять самую простую

Вот они, эти ваши нейросети. 10 лет назад я о таком мог только мечтать. А сейчас оно просто работает :)

Теперь надо для очистки совести завернуть этот в какой-нибудь sandbox и перенести на свой ноут. Хотя можно и забить - на игровом компе чувствительных данных нет, можно там гонять

 , , ,

router
()

Кто уже сталкивался с 166 указом? Он для вообще всего софта?

Форум — Admin

Доброго времени суток. Сабж

На работе обрадовали, что у нас теперь тоже «критически важная инфраструктура». Сижу, читаю http://publication.pravo.gov.ru/Document/View/0001202203300001

Там блин сказано, что нужно завязать напрочь к 2025

Не могу понять, он только про софт, закупаемый через 223 фз, или воообще любой купленный? Или даже включая СПО?

Может кто уже сталкивался

 ,

router
()

wtf? либо мейнейнеры курят одну и ту же дурь, либо что-то очень странное происходит

Форум — Talks

Есть такой проект, mod_auth_gssapi. Модуль для apache, реализует spnego (gssapi) протокол для apache. В частности, через него подключают доменную аутентификацию через kerberos

И внезапно есть два репозитория

Угадайте с одного раза, какой из них официальный

И какой, сюрприз, указан в описании пакетов в debian и rhel

$ apt-cache show libapache2-mod-auth-gssapi | grep Homepage
Homepage: https://github.com/modauthgssapi/mod_auth_gssapi
# yum info mod_auth_gssapi | grep URL
URL         : https://github.com/modauthgssapi/mod_auth_gssapi

Вы видите то же, что и я? WTF?!

 ,

router
()

Посоветуйте корпус для компа с прицелом на hdd

Форум — Linux-hardware

Доброго времени суток

Посоветуйте, пожалуйста, корпус для компа, который будет домашним nas’ом на стандартном железе. Последние пару лет работаю за ноутом, т.к. он тихий, но от компа осталась куча жестких дисков, которые было бы здорово расшарить по iscsi

из хотелок

  • места под 4+ hdd (3.5)
  • хороший обдув корзины с дисками
  • виброгасящие прокладки для дисков

 ,

router
()

NetworkManager + Open vSwitch: поднять внутренний линк

Форум — Admin

Доброго времени суток

На тестовом стенде с libvirt решил попробовать openvswitch. Реальных интерфейсов не добавлял, свитч чисто внутренний

Интерфейс на стороне хоста без проблем поднимается через iproute2 и через /etc/network/initerfaces

Но у меня не получается сделать это через NetworkManager. unmanaged и всё тут. Все созданные connection не привязываются к device

Где я торможу?

подробности:

Как создавал виртуальный свитч:

root@io:~# ovs-vsctl add-br ovs-br0
root@io:~# ovs-vsctl set port ovs-br0 trunks=22,23,24

## после запуска 2 ВМ:
root@io:~# ovs-vsctl show
0ebe929a-0acc-41ad-8d3b-72638f781ed0
    Bridge ovs-br0
        Port vnet2
            tag: 23
            Interface vnet2
        Port ovs-br0
            trunks: [22, 23, 24]
            Interface ovs-br0
                type: internal
        Port vnet1
            tag: 23
            Interface vnet1
    ovs_version: "3.1.0"

ВМ друг друга пингуют, все ок. Теперь надо добавить доступ из ОС. Т.е. тупо поднять vlan на транковом интерфейсе ovs-br0

  • через iproute2 без проблем:
## до всех действий интерфейс ovs-br0 на стороне хоста в состоянии down
## это его дефолтное значение, вообще не проблема, ВМ все равно друг друга пингуют
ip link set dev ovs-br0 up
ip link add link ovs-br0 name ovs-br0.23 type vlan id 23
ip link set dev ovs-br0.23 up
ip a a 192.168.23.1/24 dev ovs-br0.23
## все, интерфейс поднят, пинг с хоста к ВМ проходит
  • через устаревший debian’овский /etc/network/interfaces тоже без проблем
## до всех действий интерфейс ovs-br0 на стороне хоста в состоянии down
## это ок, см. предыдущий пункт
root@io:~# grep -A1 ovs-br0 /etc/network/interfaces
iface ovs-br0.23 inet static
        address 192.168.23.1/24
root@io:~# ifup ovs-br0.23
## все, интерфейсы (оба, и транковый ovs-br0, и vlan ovs-br0.23) подняты, пинг с хоста к ВМ проходит
  • а вот через NetworkManager не выходит каменный цветок. По какой-то причине он считает device ovs-br0 unmanaged. несмотря на то, что в конфиге я вроде бы разрешил управлять всем
root@io:~# nmcli dev | grep ovs
ovs-br0     openvswitch  unmanaged               --         

root@io:~# cat /etc/NetworkManager/NetworkManager.conf 
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=true

[main]
no-auto-default=*

[keyfile]
unmanaged-devices=

## напомню, по дефолту ovs-br0 в состоянии down
## если поднять ovs-br0 вручную через ip l set dev ovs-br0 up, то NetwokManager согласен создать на нём vlan
nmcli con add type vlan con-name ovs-br0.23 dev ovs-br0 id 23 ipv4.method manual ipv4.addresses 192.168.23.1/24 ipv6.method disabled
## после этого хост пингует ВМ
## НО. без ручного поднятия интерфейса NetworkManager не привязывает созданный vlan никуда
## а хотелось бы, чтобы эта конструкция переживала ребут :)

У NetworkManager есть некий плагин openvswitch (https://developer-old.gnome.org/NetworkManager/stable/nm-openvswitch.html) Насколько я понял, он нужен для того, чтобы управлять openvswitch через NetworkManager. Как раз это мне категорически НЕ нужно. От NetworkManager на тестовом стенде требуется только поднять (просто поднять) транковый интерфейс, навесить на него vlan и уже на интерфейсе vlan’а назначить ip

 ,

router
()

Посоветуйте task manager для android

Форум — Mobile

Доброго времени суток

Сабж. Который покажет запущенные (явно или в фоне) приложения и позволит их закрыть. Чтобы не жрали батарею и не спамили уведомлениями

Раньше в miui такой был, после обновления тупо список приложений, запущенные ищи сам…

В идеале с f-droid, открытый

 

router
()

хочется странного: socks сервер с access control

Форум — Admin

Доброго времени суток

Сабж. Бывает ли такое?

 

router
()

nextcloud против лимитов php

Форум — Admin

Доброго времени суток

В процессе дебага наткнулся на ситуацию, которую не могу понять

Есть nextcloud сервер, работающий в связке nginx + php-fpm. В php.ini дефолтные лимиты

upload_max_filesize = 2M
max_execution_time = 30
max_input_time = 60

и я не вижу, чтобы они переопределялись в конфигах php-fpm

Но при этом я спокойно загружаю в nextcloud файл > 20 GiB, и загрузка занимает > 30 мин

И в багтрекере есть тикет, что не получается ограничить размер файла: https://github.com/nextcloud/docker/issues/1014

Вот как это возможно? Я не про багтрекер. Как приложение обошло лимиты php? Или я чего-то фундаментального не понимаю…

 ,

router
()

существует ли надежный способ отключить авто смену title в screen?

Форум — Desktop

Доброго времени суток

Сабж. Задрало дальше некуда. В своём debian я обычно делал

# раньше было так
# hardstatus off
# потом эти нехорошие люди что-то поменяли, старый вариант перестал рабоать, пришлось сделать так
hardstatus alwaysignore
# а когда и этого перестало хватать, пришлось добавить
defdynamictitle off

удалённый хост, screen 4.1

И снова это дерьмо…

Есть идеи?

 

router
()

nginx + modsecurity VS systemd

Форум — Admin

Доброго времени суток

Пробую подключить modsecurity (libmodsecurity v3) к nginx (через modsecurity-nginx connector)

Ситуация странная

  • libmodsecurity и connector собираются, в принципе добавляются в конфиг nginx
  • и если перевести modsecurity-nginx в режим «SecRuleEngine On», правила работают, и даже пишут в error_log nginx’а
  • но логирование средствами modsecurity (SecAuditLog, SecDebugLog) не работает вообще никак. более того, если включить DebugLog в конфиге monsecurity-nginx, то nginx падает при запуске через systemd
  • НО. если запускать nginx вручную, а не через systemd, то он запускается без ошибок и тем более без падений. И даже начинает вести SecAuditLog ( хотя выглядит так, будто он туда пишет SecDebugLog )

Т.е. более-менее нормально он работает только в двух вариантах

  1. «SecRuleEngine On», дебаг лог отключен: можно запускать через systemd
  2. «SecRuleEngine DetectOnly». только мимо sytemd. Т.к. без дебага этот режим бесполезен

Кто-нибудь знает, что за проблемы у modsecurity-nginx с systemd?

Хотелось бы его пощупать с дебагом, но без костылей с ручным запуском мимо systemd

 , ,

router
()

Подскажите аналог reposync для apt

Форум — Admin

Доброго времени суток

Сабж

reposync, как и apt-mirror, делает локальное зеркало указанного репозитория. Но если reposync качает только последние версии пакетов (что обычно и нужно), то apt-mirror скачает вообще все версии (т.е. кучу бесполезного мусора, раздувающего репозиторий раз в 10)

 , reposync

router
()

vim: какие есть лимиты на вставку текста?

Форум — General

Доброго времени суток

Сабж. Вставляю текст из буфера обмена не через привязку к безымянному буферу vim, а средствами xfce-terminal (правая кнопка мыши - вставить). Т.е. насколько я понимаю, для vim этот текст появляется на STDIN

В результате создаваемый файл чуть меньше 45 KiB (а должен быть ~ 98 KiB)

В том же терминале копирую текст в nano - всё в порядке, 98 kib.

По совету гугла повысил вдвое лимиты в viminfo (и убедился, что лимит изменился, через set viminfo=?) - не помогло, те же ~ 45 KiB

  1. В чём может быть проблема?
  2. И есть ли способ научить vim предупреждать о такой проблеме? Т.к. сейчас с моей точки зрения он молча портит данные. Чего я от привычного инструмента вообще не ожидал :/

 

router
()

подскажите vps/vds где-нибудь в турции

Форум — Admin

С гуглом из-за карт ситуация непонятная

Нужно искать что-то с мир или китайским unionpay

 , ,

router
()

размер reference image в blender

Форум — Multimedia

Доброго времени суток

Добавляю в blender изображаение (shift-a -> image -> reference)

JPEG image data, JFIF standard 1.01, resolution (DPI), density 600x600, segment length 16, baseline, precision 8, 4961x7016, components 3

Т.е. это обычный A4 (210x297 мм), 600 DPI

Результат странных размеров, не совпадает вообще ни с чем, что приходит в голову. Добавляю plane, подгоняю по размеру к изображению - ~ 3.53x4.99 m

Ну допустим. Подбрасываю то же самое изображение в 300 DPI

JPEG image data, JFIF standard 1.01, resolution (DPI), density 300x300, segment length 16, baseline, precision 8, 2481x3508, components 3

И это изображение добавляется с тем же самым размером ~ 3.53x4.99 m. Т.е. информацию о DPI blender похоже не игнорирует

Сижу и думаю: какой странной логикой руководствовался blender, увеличивая reference image в ~ 16.8 раз?

$ echo '3530/210' | bc -l
16.80952380952380952380
$ echo '4990/297' | bc -l
16.80134680134680134680

 

router
()

можно в двух словах, чем различаются lvm mirror и lvm raid1?

Форум — Admin

Доброго времени суток

Документацию читаю, но скорее всего тонкие моменты вылезут позже и неожиданно

 ,

router
()

Катастрофическая уязвимость в Apache Log4j, затрагивающая многие Java-проекты

Форум — Security

Доброго времени суток

Тут внезапно появилась огромная жопа, надо исправлять. Если кому не лень, запилите новость

https://www.opennet.ru/opennews/art.shtml?num=56319

В Apache Log4j, популярном фреймворке для организации ведения логов в Java-приложениях, выявлена критическая уязвимость, позволяющая выполнить произвольный код при записи в лог специально оформленного значения в формате «{jndi:URL}». Атака может быть проведена на Java-приложения, записывающие в лог значения, полученные из внешних источников, например, при выводе проблемных значений в сообщениях об ошибках.

 , ,

router
()

ansible: нужен модуль, который не делает ничего

Форум — Admin

Доброго времени суток

Сабж. Единственная цель - пнуть handler через notify, если файла нет. Т.е. нужен тупой переходник между «when» и «notify» без каких-либо действий в самом task

Хочется в роли сделать что-то вроде

tasks/main.yml:

- name: "check file exists"
  ansible.builtin.stat:
    path: "/path/blahblah"
  register: "blahblah"

- name: "kick myhandler"
  dummy: "do nothing but kick handler"
  when:
    - blahblah.stat.exists
  changed_when: true
  notify: myhandler

Да, можно было бы перенести код из handler’а в task и обойтись без переходника, но он должен вызываться по нескольким разным событиям, и логичнее всё же оставить его handler’ом

 

router
()

lorquotes уже месяц лежит. пните там кого-нибудь

Форум — Talks

Сабж :/

update: @devinull

 

router
()

Стыковка МЛМ Наука с МКС

Форум — Talks

Доброго времени суток

Стыковка запланирована на ~ 16:24 MSK (13:24 UTC)

5 км осталось, трансляция уже идёт:

 , , ,

router
()

хочется странного: writeback кэш для разгрузки hdd в ноуте

Форум — General

Есть ноут, который в принципе работает довольно долго с дефолтными настройками

Но в нем диск wd, который засыпает каждые 8 секунд. wdidle3 / idle3-tools с ним уже не работают. А в нашем линуксе 10 секунд отложенная запись. Можно отключить энергосбережение (hdparm -B 254), но это лишние 1.6 Вт (в ноуте они реально лишние…)

Часто пишут на диск в $HOME несколько приложений. Не проблема перенести их каталоги на отдельную ФС

Хотелось бы, чтобы они писали в память, а изменения сбрасывались на диск сильно пореже, хотя бы раз в час. Как writeback кэш, но с очень большой задержкой. Или даже по явной команде. На возможную потерю данных плевать - эти данные не критичны и есть регулярные бекапы

Есть идеи?

 , , ,

router
()

RSS подписка на новые темы