Обновить
-21
0.2
Алексей Смирнов@pol_pot

Пользователь

Отправить сообщение

Ну да, просто совпадение. Еще говорят что эти ПВО защищали 100т илитных британских спецназовцев из САС и они все там погибли. Мы сейчас соловьиный помёт обсуждать будем?

Китай не настолько упорот и нуждается что бы продавать северокорейцам ядерное оружие или технологии.

Ллм же не умеет играть в шахматы и зрения у большинства нет. Странная затея. Если их будут дисквалифицировать за неверные ходы то большинство сольется за 5 минут.

Очень слабая попытка. Что бы сломалось достаточно просто повернуть лист с текстом боком и начинается бредятина как у гигачада.

Отдельного ocr как у мистраля для pdf у cohere нет. В доке предлагается вручную дербанить пдф и распознавать страницы отдельно, очень медленно и печально.

GPT-4.1 лучше на порядок, они явно из разных весовых категорий.

Ты хоть представляешь сколько стоит аренда сервера на котором крутится дешевая моделька gpt 4о? Там как минимум десяток видеокарт по 20т долларов стоит, в каждом сервере. Просто голое железо и электричество без учета всех остальных затрат.

А ведь ее еще создать и развивать надо, каждому крупному разработчику по 100млн отвалить чтоб его не перекупили конкуренты. И ты наверняка хочешь не голую ллм а с прикрученным к ней поиском от гугла(его запросы стоят еще больше), с виртуальной машиной для выполнеия кода, с другими нейронками в комплекте - распознавание образов, голосов, генерация картинок итп.

Себестоимость запросов к дешевым открытым моделям(+ небольшая маржа хостера) посмотри на https://openrouter.ai и потом рассказывай про жадность и вымогательство. Этим хостерам не надо тратится на разработку моделей, они просто взяли бесплатное и запустили на своем железе что бы заработать немного на аренде.

Те у кого заметно дешевле - запускают сильно порезанную квантованную версию
Те у кого заметно дешевле - запускают сильно порезанную квантованную версию

Достижения КНДР? Мороженное по 5 копеек? Эта ядреная ракета мне что то сильно напоминает, кажется я знаю в каком военторге ее могли купить.

Пробовал сегодня qwen3coder который гигантский. Он застрял на небольшом простом питоновском коде с glob.glob(). Пытался использовать сложную маску и плохо реагировал на попытки вытащить его из болота. Пришлось доделывать в gemini.

Эм, youtube-transcript.io? Попробовал там получить транскрипцию и получил обычные субтитры которые на ютубе бесплатно лежат. Они что, пытаются это продавать за 10 баксов?

Почти у всех видео на ютубе есть готовые субтитры. Чуть хуже чем то что делает виспер но для переваривания с помощью ллм - без разницы вообще.

Простых и незаблокированных мессенджеров много. Они очень низкого качества но точно лучше чем то что может сделать тебе гпт.

Скорее всего это гпт - хорошее распознавание картинок есть только у 2-3 компаний и тут оно есть.

Скорее всего это не гпт5 - обещали же что не будут больше делать неразмышляющие модели.

146% что это не опенсорс версия, такую хорошую модель в чужие руки они не отдадут.

Скорее всего это что то типа гпт 4.2, обновление для 4.1

Тут дают 20 часов в сутки на аккаунта виспер https://console.groq.com/settings/limits

Скорость x240.

Куски только резать надо по 25мб. И нет временных меток.

Бесплатно

Попросил гпт переделать с помощью mediainfo. Вроде работает, но это не точно, не очень понял зачем это нужно вообще.

$ mdurmi ~/tmp
Общая длительность: 00:07:36
 Файлов: 11

Длительность  Имя файла
----------  ---------
00:00:05    /home/ubuntu/tmp/1111/videos/IMG_4820.MP4
00:00:11    /home/ubuntu/tmp/1111/videos/IMG_4683.MP4
00:00:13    /home/ubuntu/tmp/1111/videos/m2-res_1280p (36).mp4
00:00:12    /home/ubuntu/tmp/1111/videos/IMG_7808.MOV
00:00:09    /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-28.mp4
00:00:10    /home/ubuntu/tmp/1111/videos/123.flv
00:01:28    /home/ubuntu/tmp/1111/videos/Встретились два одиночества #скорая #скораяпомощь #первыекторядом #смп #03 #скорая помощь #103 [YgwvtN3bG_Q].webm
00:02:45    /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-43.mp4
00:00:17    /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-01.mp4
00:00:10    /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-05.mp4
00:01:56    /home/ubuntu/tmp/1111/videos/IMG_1385.MOV

$ mdurmi -v -f -s d ~/tmp
Найдено файлов: 11
Читаю: /home/ubuntu/tmp/1111/videos/IMG_4820.MP4
Читаю: /home/ubuntu/tmp/1111/videos/IMG_4683.MP4
Читаю: /home/ubuntu/tmp/1111/videos/m2-res_1280p (36).mp4
Читаю: /home/ubuntu/tmp/1111/videos/IMG_7808.MOV
Читаю: /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-28.mp4
Читаю: /home/ubuntu/tmp/1111/videos/123.flv
Читаю: /home/ubuntu/tmp/1111/videos/Встретились два одиночества #скорая #скораяпомощь #первыекторядом #смп #03 #скорая помощь #103 [YgwvtN3bG_Q].webm
Читаю: /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-43.mp4
Читаю: /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-01.mp4
Читаю: /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-05.mp4
Читаю: /home/ubuntu/tmp/1111/videos/IMG_1385.MOV
Общая длительность: 00:07:36
 Файлов: 11

Длительность  Формат  Имя файла
----------  ------        ---------
00:02:45    MPEG-4        /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-43.mp4
00:01:56    MPEG-4        /home/ubuntu/tmp/1111/videos/IMG_1385.MOV
00:01:28    WebM          /home/ubuntu/tmp/1111/videos/Встретились два одиночества #скорая #скораяпомощь #первыекторядом #смп #03 #скорая помощь #103 [YgwvtN3bG_Q].webm
00:00:17    MPEG-4        /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-01.mp4
00:00:13    MPEG-4        /home/ubuntu/tmp/1111/videos/m2-res_1280p (36).mp4
00:00:12    MPEG-4        /home/ubuntu/tmp/1111/videos/IMG_7808.MOV
00:00:11    MPEG-4        /home/ubuntu/tmp/1111/videos/IMG_4683.MP4
00:00:10    Flash Video   /home/ubuntu/tmp/1111/videos/123.flv
00:00:10    MPEG-4        /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-05.mp4
00:00:09    MPEG-4        /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-28.mp4
00:00:05    MPEG-4        /home/ubuntu/tmp/1111/videos/IMG_4820.MP4
#!/usr/bin/env bash
set -uo pipefail

VERSION="0.7"
RECURSIVE=true
VERBOSE=false
SHOW_FORMAT=false
SORT_KEY=""
TYPES=""
MI_TIMEOUT="10s"

print_help() {
  cat <<EOF
mdurmi v$VERSION — суммирует длительность медиафайлов через mediainfo.

Использование:
  mdurmi [опции] [ПУТЬ]
Опции:
  -r    только текущая папка (без рекурсии)
  -s d  сортировка по длительности (desc)
  -t l  фильтр по расширениям: mp4,mov,mp3
  -f    показывать формат (контейнер)
  -v    подробный режим
  -h    помощь
EOF
}

seconds_to_hms() {
  local s=${1%.*}
  s=$((10#$s))
  local h=$((10#$s / 3600))
  local m=$(((10#$s % 3600) / 60))
  local c=$((10#$s % 60))
  printf "%02d:%02d:%02d" "$h" "$m" "$c"
}

require_tools() {
  if ! command -v mediainfo >/dev/null 2>&1; then
    echo "Ошибка: mediainfo не найден" >&2
    exit 127
  fi
}

TIMEOUT_CMD=""
if command -v timeout >/dev/null 2>&1; then
  TIMEOUT_CMD="timeout"
elif command -v gtimeout >/dev/null 2>&1; then
  TIMEOUT_CMD="gtimeout"
fi

run_mi() {
  # $1 = inform, $2 = file
  if [[ -n "$TIMEOUT_CMD" ]]; then
    "$TIMEOUT_CMD" "$MI_TIMEOUT" mediainfo --Inform="$1" "$2" 2>/dev/null | tr -d '\r'
  else
    mediainfo --Inform="$1" "$2" 2>/dev/null | tr -d '\r'
  fi
}

probe_file() {
  local file="$1"
  local dur_ms fmt

  dur_ms=$(run_mi "General;%Duration%" "$file" || true)
  if [[ -z "$dur_ms" || "$dur_ms" == "0" ]]; then
    dur_ms=$(run_mi "Video;%Duration%" "$file" || true)
    if [[ -z "$dur_ms" || "$dur_ms" == "0" ]]; then
      dur_ms=$(run_mi "Audio;%Duration%" "$file" || true)
    fi
  fi

  if $SHOW_FORMAT; then
    fmt=$(run_mi "General;%Format%" "$file" || true)
  else
    fmt=""
  fi

  if [[ -z "$dur_ms" ]] || ! [[ "$dur_ms" =~ ^[0-9]+([.][0-9]+)?$ ]] || [[ "$dur_ms" == "0" ]]; then
    $VERBOSE && echo "  Ошибка: нет валидной длительности: $file" >&2
    echo -e "ERR\t${fmt}\t${file}"
    return 1
  fi

  local dur_s
  dur_s=$(awk -v ms="$dur_ms" 'BEGIN{printf "%.0f", ms/1000}')
  echo -e "${dur_s}\t${fmt}\t${file}"
  return 0
}

while getopts ":rs:t:fvh" opt; do
  case "$opt" in
    r) RECURSIVE=false ;;
    s) SORT_KEY="$OPTARG" ;;
    t) TYPES="$OPTARG" ;;
    f) SHOW_FORMAT=true ;;
    v) VERBOSE=true ;;
    h) print_help; exit 0 ;;
    \?) echo "Неизвестная опция: -$OPTARG" >&2; exit 2 ;;
    :) echo "Опция -$OPTARG требует аргумент" >&2; exit 2 ;;
  esac
done
shift $((OPTIND-1))

TARGET="${1:-.}"
require_tools

# Дефолтные расширения
if [[ -z "$TYPES" ]]; then
  TYPES="mp4,mov,m4v,mkv,avi,flv,webm,mp3,flac,wav,aac,ogg,m4a"
fi

shopt -s nullglob dotglob
declare -a files
skip_suffix=".filepart"

collect_recursive() {
  IFS=, read -r -a exts <<<"$TYPES"
  find_expr=()
  for e in "${exts[@]}"; do
    e="${e#.}"
    find_expr+=(-iname "*.${e}")
    find_expr+=(-o)
  done
  unset 'find_expr[${#find_expr[@]}-1]' || true
  while IFS= read -r -d '' f; do
    [[ "$f" == *"$skip_suffix" ]] && continue
    files+=("$f")
  done < <(find "$TARGET" -type f \( "${find_expr[@]}" \) -print0)
}
collect_shallow() {
  if [[ -d "$TARGET" ]]; then
    IFS=, read -r -a exts <<<"$TYPES"
    for e in "${exts[@]}"; do
      e="${e#.}"
      for f in "$TARGET"/*."$e"; do
        [[ -e "$f" ]] || continue
        [[ "$f" == *"$skip_suffix" ]] && continue
        files+=("$f")
      done
    done
  else
    [[ "$TARGET" == *"$skip_suffix" ]] || files+=("$TARGET")
  fi
}

if $RECURSIVE; then
  collect_recursive
else
  collect_shallow
fi

total_sec=0
count=0
errors=0
results_file=$(mktemp)
trap 'rm -f "$results_file"' EXIT

$VERBOSE && echo "Найдено файлов: ${#files[@]}"

for file in "${files[@]}"; do
  [[ -f "$file" ]] || continue
  $VERBOSE && echo "Читаю: $file"

  line=""
  if ! line=$(probe_file "$file"); then
    ((errors++))
    continue
  fi

  dur_s=$(cut -f1 <<<"$line")
  fmt=$(cut -f2 <<<"$line")
  name=$(cut -f3- <<<"$line")

  total_sec=$((10#$total_sec + 10#$dur_s))
  ((count++))

  printf "%09d\t%s\t%s\n" "$dur_s" "${fmt:-}" "$name" >>"$results_file"
done

if [[ $count -eq 0 ]]; then
  echo "Общая длительность: 00:00:00"
  echo " Файлов: 0"
  [[ $errors -gt 0 ]] && echo " Ошибок: $errors (включи -v)"
  exit 0
fi

# Сортировка по первому числовому полю
if [[ "$SORT_KEY" == "d" ]]; then
  sort -k1,1nr "$results_file" > "$results_file.sorted" && mv "$results_file.sorted" "$results_file"
fi

echo "Общая длительность: $(seconds_to_hms "$total_sec")"
echo " Файлов: $count"
[[ $errors -gt 0 ]] && echo " Ошибок: $errors"

echo

if $SHOW_FORMAT; then
  printf "%-10s  %-12s  %s\n" "Длительность" "Формат" "Имя файла"
  printf "%-10s  %-12s  %s\n" "----------"   "------" "---------"
  while IFS=$'\t' read -r s fmt name; do
    hms=$(seconds_to_hms "$s")
    printf "%-10s  %-12s  %s\n" "$hms" "${fmt:-?}" "$name"
  done < "$results_file"
else
  printf "%-10s  %s\n" "Длительность" "Имя файла"
  printf "%-10s  %s\n" "----------" "---------"
  # читаем только 1-е и 3-е поле (имя), пропуская формат
  while IFS=$'\t' read -r s name; do
    hms=$(seconds_to_hms "$s")
    printf "%-10s  %s\n" "$hms" "$name"
  done < <(cut -f1,3- "$results_file")
fi

Главное не проверять что там этот виспер нарасшифровывал Ж)

-- Как понять что статья написана тупым роботом?

-- Он не умеет считать.

https://www.youtube.com/watch?v=R9TnCP2D8HQ

Gemini 2.5 flash (prompt = "Listen carefully to the following audio file. Provide a transcript. Fix errors, make a fine text with good looking paragraphs, without time stamps and diarization (speaker separation). This audio file is a cutted fragment with +5 extra seconds in both directions.") По мне так топ, но есть ИИшные заморочки, размер ответа не больше 30т русских символов, цензура может заблокировать запрос, может зависнуть и вернуть повторы повторы повторы повторы повторы повторы повторы повторы повторы повторы повторы повторы повторы...

Ведьмаку заплатите
Чеканной монетой,
Чеканной монетой.
О-о.
Ведьмаку заплатите,
Зачтётся всё это.
Вау.

Он хоть на край земли отправится готов,
Сразить всех чудовищ, убить всех врагов.

Он эльфов всех прогнал за дальний перевал,
Высокие горы, на дальний привал.

Он бьёт не в бровь, а в глаз,
Был ранен много раз.
Он людям товарищ,
Всегда он за нас.

К чему эта вражда,
Никак я не пойму.
Он нас защищает,
Так налетите ж ему!

Ведьмаку заплатите
Чеканной монетой,
Чеканной монетой.
О-о.
Ведьмаку заплатите,
Зачтётся всё это.
Вау.

Ведьмаку заплатите
Чеканной монетой,
Чеканной монетой.
О-о.
Ведьмаку заплатите,
Зачтётся всё это.
Вау.

Ведьмаку заплатите
Чеканной монетой,
Чеканной монетой.
О-о.
Ведьмаку заплатите,
Зачтётся всё это.
Вау.

Whisper(whisper-large-v3-turbo) короткие записи хорошо понимает, в длинных склонен глотать целые абзацы

Ведьмаку заплатите Он эльфов всех прогнал за дальний перевал Высокие горы на дальний привал Он бьет не вброд, а в глаз, был ранен много раз Он людям товарищ, всегда он за нас Ведьмаку заплатите, зачтется все это Ведьмаку заплатите чеканной монетой Ведьмаку заплатите, зачтется все это вам Ведьмаку заплатите чеканной монетой Чиканым монетой Ведь могу заплатить Зачтется все это

Voxtral новая модель от мистраля (такое же недоразумение как и все их модели)

Ведь могу заплатить, чеканы монетой, чеканы монетой. Ведь могу заплатить, зачтется всё это. Он хоть на край земли, отправится готов, сразить всех чудовищ, убить всех врагов. Он эльфов всех прогнал за дальний перевал, высокие горы на дальний привал. Он бьет не впродь, а в глаз, был ранен много раз. Он людям товарищ, всегда он за нас. Чему эта вражда, никак я не пойму. Он нас защищает, так налетишь ему. Ведь могу заплатить, чеканы монетой, чеканы монетой. Ведь могу заплатить, зачтется всё это. Ведь могу заплатить, чеканы монетой, чеканы монетой. Ведь могу заплатить, зачтется всё это. Ведь могу заплатить, чеканы монетой, чеканы монетой. Ведь могу заплатить, зачтется всё это.

Deepgram хороший коммерческий вариант, принимает файлы любого размера и типа без заморочек, выдает хороший результат с огромной скоростью

неправильно распознал язык, обычные записи он хорошо распознает

Assemblyai (большая модель) примерно такой же как deepgram, без заморочек но за деньги

Ведьмаку заплатите чеканной монетой, чеканной монетой. Ведьмаку заплатите, зачтется всё это вам. Он ходит на край земли, отправиться готов. Сразить всех чудовищ, убить всех врагов. Эльфов всех прогнал за дальний перевал, Высокие горы на дальний прибал. Он бьёт не в брод, а в глаз, Был ранен много раз. Он людям товарищ, Всегда он за нас. Чему эта вражда, Никак я не пойму, Он нас защищает, Так налетишь ему. Ведьмаку заплатите Чеканной монетой, Чеканной монетой, о-о-о Ведьмаку заплатите Зачтется всё это вам Ведьмаку заплатите Чеканной монетой, Чеканной монетой, о-о-о Ведь могу заплатите, зачтется все это. Ведь могу заплатите, чеканы монетой, чеканы монетой. Ведь могу заплатите, зачтется все это.

Из видео обычно получается достать текст, слова, а их уже пересказывать. Открытые модели есть, whisper, voxtral. Смотреть видео без слов вроде никто кроме гугла не умеет. Чисто теоретически можно нарезать его на кадры и прогнать через распознавание картинок, это многие умеют.

Учитывая что источник видео обычно - ютуб, там даже самому распознавать голос не надо, там субтитры почти всегда есть приложенные.

Это в 40 раз дороже чем на опенроутере, по такой цене только цигане продают. Ну и казнокрады ещё. https://openrouter.ai/qwen/qwen3-235b-a22b-2507

Никто вас никуда не сманивает. Можете хоть карандашом в блокноте писать, если вам этого хватает то почему бы и нет.

Информация

В рейтинге
3 005-й
Зарегистрирован
Активность

Специализация

Менеджер технической поддержки
Старший
Git
SQL
Linux
MySQL
PHP
PostgreSQL
Docker