Автор Гілка: Машинний переклад ігрових WAV/MP3 (українською)  (Прочитано 3168 раз)

Відсутній ps

  • Графоман
  • ****
  • дописів: 261
  • Карма: +4/-0
    • Мої дописи на DevZone
В анонсованій раніше збірці GTA: Vice City використовується саме такий переклад (SkynetUA) і звучить він досить живо, хоча деякі сцени трішки "фальшивлять" зі знаками питання в інтонаціях, але то таке. Я тут подумав: а що якщо згенерувати такий само переклад для GTA III - можна було б створити і таку збірку, субтитри і шрифти там вже є.

Цікавлять перш за все безкоштовні опції, я готовий перекладати тисячу файлів щодня невеличкими порціями, якщо це можливо. Або може комусь буде цікаво вгепати в це діло свої токени. Не менш цікаві й моделі для цих задач, бо на ШІ розуміюсь мало, тим паче по звуку.

Відсутній BeSiDa

  • Письменник
  • *****
  • дописів: 512
  • Карма: +7/-0
Цікавлять перш за все безкоштовні опції
Мені здається більш цікавий напрямок то "зміна голосу" (тембр, звучання, контраст).
Тобто ви самі себе записуєте в аудіо, а потім те аудіо через оброку зміни голосу перетворюєте. Такі моделі (і навіть плагіни до звуко-редакторів без моделей) можуть бути простіші та безкоштовні. Дивилися в лінукс набори плагінів до звуко-редакторів?

, я готовий перекладати тисячу файлів щодня невеличкими порціями, якщо це можливо.
Можете хоча б один спробувати так перекласти та порівняти з оригіналом англійською?

Відсутній ps

  • Графоман
  • ****
  • дописів: 261
  • Карма: +4/-0
    • Мої дописи на DevZone
Так, я вже трохи начитався як це робиться: це озвучка однією людиною, яка потім синтезується в різні голоси персонажів - тому і звучить живо.

Сам я цим займатись без відповідного обладнання не зможу, а от підготувати файли, законтролити таймінг, інтегрувати з тестами в готовий набір. Це було б добре, якби автори ютуб-каналів цим зайнялись (треба пошерстити ютуб, може тема десь вже піднімалась)

Цитата
Можете хоча б один спробувати так перекласти та порівняти з оригіналом англійською?
Вже спробував пару онлайн сервісів та виходить фігня: навіть якщо вистачає безкоштовних токенів на один файл в день, то не вистачає на довгі файли по часу. Я б навіть міг би змонтувати їх шматками та якість жахлива, я таке слухати в грі точно не хочу.

P.S. А де адмін? Щось давненько його не видно, він наче розбирається в моделях.
« Змінено: 2026-08-05 01:57:29 від ps »

Відсутній BeSiDa

  • Письменник
  • *****
  • дописів: 512
  • Карма: +7/-0
Сам я цим займатись без відповідного обладнання не зможу
Може здаватися дивним, але для запису голосу досить вашого смартфону :) Його дуже довго змінювали саме задля збільшення якості голосу (а не будь яких звуків, співів чи музики).
Може знадобитися зменшення відлуння від стін, але можете поставити палатку (найдешевшу) дома та накрити її шарами штор чи покривал :)  Та ще обрати гучність вашого голосу (тихіше чи шепіт може бути кращим варіантом) і не напряму в мікрофон.
Або ще вр окуляри деякі мають гарну обробку звуку задля спілкування у вр (декілька мікрофонів для зниження перешкод).

P.S. А де адмін? Щось давненько його не видно, він наче розбирається в моделях.
Не чути.
Особисто написали?

Відсутній ps

  • Графоман
  • ****
  • дописів: 261
  • Карма: +4/-0
    • Мої дописи на DevZone
Я колись вже займався подібними імпровізаціями: робив самопальні мембрани для мікрофону, щоб прибирати "п"/"б" звуки. А потім придбав акустику, переслухав ті свої витвори та дропнув нафіг. Сьогодні звісно програмні технології фільтрів, залізо навіть в телефоні якісніше за те що в мене колись було. Та все одно, кожному ремеслу - своє обладанння і спеціалісти, я оно ледве скрінкасти в OBS записав та й ті з лагами.

P.S. А де адмін? Щось давненько його не видно, він наче розбирається в моделях.
Не чути.
Особисто написали?

Та ось пишу в паблік, може відгукнеться чи все "нормально" хоча б..
« Змінено: 2026-08-06 05:19:20 від ps »

Відсутній BeSiDa

  • Письменник
  • *****
  • дописів: 512
  • Карма: +7/-0
щоб прибирати "п"/"б" звуки.
З того часу багато чого змінилося.
Детальніші мікрофони відкрили можливість "говорити у пусте місце" замість "говорити в мікрофон". Тому всі ті звуки не атакують мікрофон, а пролітають повз.
Ви спробували говорити не в мікрофон? З останньою технікою? Порівняйте.
Ви ж у житті не говорите іншим прямо у вуха :))
Намагаєтеся отримати "звук як у житті" і робите запис "не як у житті".

залізо навіть в телефоні якісніше
Ви плутаєте "якісніше обладнання" з "якістю запису". Це не синоніми. Можна робити набагато якісніше гіршим обладнанням за допомогою софту. Особливо коли то не ріалтайм, або з малою затримкою.
У сучасному смартфоні (та ін) гірші мікрофони, але їх два чи п'ять чи сім і вони в різних місцях та напрямах. І софт.

Та все одно, кожному ремеслу - своє обладанння
гонєво. Смартфон Єпла не для "ремесла", але ним знімають відорекламу та фільми. Але мало хто. Інші лише платять за нього :)
Ви можете записати навіть старим, але не одним, а двома чи багатьма. І обробка.

і спеціалісти
теж гонєво. "людина" це та, якій цікаво вміти все самій.
Ви можете створити прям як є, якщо хочеться вам. А то вже буде бажання інших "зробити краще за вас". Не ваше.

Відсутній ps

  • Графоман
  • ****
  • дописів: 261
  • Карма: +4/-0
    • Мої дописи на DevZone
Я переключився з пройденої трилогії на San Andreas. Тепер тут є певний голос, і може це якось вийде синтезувати.
З іншого боку, зустрічаються і такі потенційні донори на YouTube: 1, 2 - можна було б заморочитись, якщо той ШІ синтез може виправити подібну якість то тема актуальна.

UPD. власне так зрозумів, що підмоги чекати не варто і пішов копати своїми силами. і ось що накопав.

Адаптація дубляжу з YouTube

Мій перший експеримент полягає у використанні голосу з ютубу #2 (@Morum_Dyakula_UA), який я нарізаю шматками з Audacity. Тут для прибирання фонових звуків знайшов вбудований плагін OpenVINO / Noise Suppression, при чому що цікаво, в репозиторіях Fedora його встановити без гемору не вийде і довелося тягнути snapd.

sudo dnf install snapd
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install audacity
sudo /snap/bin/audacity.fetch-models

Спойлер: я користуюсь вихідним проксі, тому докидав налаштувань середовища для доступу snap до мережі:
sudo snap set system proxy.https="socks5://127.0.0.1:1234"
sudo snap set system proxy.http="socks5://127.0.0.1:1234"
sudo https_proxy="socks5://127.0.0.1:1234" http_proxy="socks5://127.0.0.1:1234" /snap/bin/audacity.fetch-models -v

Далі

/snap/bin/audacity
Effect -> OpenVINO AI Effects -> Noise Suppression

вийшло таке:

* Оригінал
* DeepFilterNet2
* DeepFilterNet3

як чути, звуки вулиці прибрало але все ще присутній оригінальний голос англійською. далі (сподіваюсь) буде..

100% синтез

SAAT розпакував ~2k аудіо-файлів і стало очевидно, що вискубувати їх руками з ютубу - заняття на сто років. Тому вирішив переглянути повністю автоматичні рішення.

Поки спробував деякі безкоштовні демки онлайн, щоб хоча б зрозуміти яка сьогодні стеля по якості на комерсі, не кажучи про якісь офлайн опенсорс. Ось які зразки назбирав:

* Оригінал (CO/001)
* clideo.com
* kapwing.com - тут руками допилював текст, бо чомусь переклало "на ви"
* rask.ai CO/001, AA/001, CUTSCENE/001 (заглючив голос, я вказав кількість осіб "auto"),  - майбуть найкраще з того що є, от тільки не більше трьох треків і $

Вільних 500 баксів у мене немає, тому вирішив налаштувати конвеєр.

Субтитри:

git clone --recursive https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
cmake -B build
cmake --build build --config Release
sudo cmake --install build
sudo ldconfig # на федора обов'язково

Моделі завантажив так:

mkdir ~/.local/share/whisper-models
./models/download-ggml-model.sh large-v3 ~/.local/share/whisper-models

Генерувати планую баш-скриптом:

whisper-cli -m ~/.local/share/whisper-models/ggml-large-v3.bin -f Track_001.ogg  * для для вибору формату використовується аргумент -ot / -osrt / -ovtt відповідно (див. --help)

Моделі ще підбираю, ~одна хвилина CUTSCENE/Track_002.ogg на i5 / CPU триває вічність і на моєму кориті оптимальною є ggml-base.en

ggml-large-v3
Цитата
[00:00:00.000 --> 00:00:05.660]   Man, where is this guy?
[00:00:09.040 --> 00:00:10.700]   Hey, I've been waiting forever, man.
[00:00:10.880 --> 00:00:11.820]   Where the hell you been?
[00:00:12.700 --> 00:00:13.600]   Sorry, Holmes.
[00:00:13.740 --> 00:00:15.300]   I had no idea when the race would be.
[00:00:15.400 --> 00:00:15.840]   Right.
[00:00:16.080 --> 00:00:18.820]   You just happened to show up five minutes after everybody else, huh?
[00:00:18.860 --> 00:00:21.620]   When the gasoline runs through your vein like the burning passion,
[00:00:22.160 --> 00:00:24.020]   you know when it's time to race.
[00:00:24.020 --> 00:00:26.600]   I think you're getting high on that country air, man.

ggml-large-v3-turbo
Цитата
[00:00:00.000 --> 00:00:05.620]   Man, where is this guy?
[00:00:09.040 --> 00:00:10.700]   Hey, I've been waiting forever, man.
[00:00:11.020 --> 00:00:11.820]   Where the hell you been?
[00:00:12.700 --> 00:00:13.600]   Sorry, Holmes.
[00:00:13.740 --> 00:00:15.300]   I had no idea when the race would be.
[00:00:15.560 --> 00:00:15.840]   Right.
[00:00:16.080 --> 00:00:18.820]   You just happened to show up five minutes after everybody else, huh?
[00:00:18.860 --> 00:00:21.620]   When the gasoline runs through your van like the burning passion,
[00:00:22.160 --> 00:00:24.020]   you know when it's time to race.
[00:00:24.220 --> 00:00:26.560]   I think you're getting high on that country air, man.

ggml-medium.en
Цитата
[00:00:00.000 --> 00:00:02.580]   (upbeat music)
[00:00:04.300 --> 00:00:05.720]   - Man, where is this guy?
[00:00:09.320 --> 00:00:11.060]   Hey, I've been waiting forever, man.
[00:00:11.060 --> 00:00:12.540]   Where the hell you been?
[00:00:12.540 --> 00:00:15.380]   - Sorry, Holmes, I had no idea when the race would be.
[00:00:15.380 --> 00:00:17.760]   - Right, you just happened to show up five minutes
[00:00:17.760 --> 00:00:18.900]   after everybody else, huh?
[00:00:18.900 --> 00:00:20.400]   - When the gasoline runs through your vein
[00:00:20.400 --> 00:00:24.300]   like the burning passion, you know when it's time to race.
[00:00:24.300 --> 00:00:27.600]   - I think you're getting high on that country air, man.

ggml-base.en
Цитата
[00:00:00.000 --> 00:00:04.000]   [MUSIC]
[00:00:04.000 --> 00:00:05.680]   Man, where is this guy?
[00:00:05.680 --> 00:00:09.060]   [MUSIC]
[00:00:09.060 --> 00:00:12.500]   Hey, I've been waiting for ever, man, what the hell you been?
[00:00:12.500 --> 00:00:15.340]   >> Sorry, Holmes, I had no idea when the race would be.
[00:00:15.340 --> 00:00:18.820]   >> Right, you just happened to show up five minutes at the everybody else.
[00:00:18.820 --> 00:00:22.260]   >> When the gasoline runs through your vein like the burning passion,
[00:00:22.260 --> 00:00:24.220]   you know when it's time to race.
[00:00:24.220 --> 00:00:27.500]   >> I think you're getting high on that country here, man.

Далі планую перекласти ці тексти з таймінгами і синтезувати голос з інтонаціями на базі оригінальних .ogg - тут наскільки розумію, треба попередньо нарізати ці файли на акторські тембри і парсити їх окремі osrt, які потім зводити.


UPD. випадково наткнувся на утиліту piper, яка дозволяє озвучувати СИРИЙ текст:

sudo dnf install pipx espeak-ng
pipx install piper-tts
echo "ти дібіл, карле!" | piper --model uk_UA-ukrainian_tts-medium.onnx --config uk_UA-ukrainian_tts-medium.onnx.json --output_file output.wav
* результат
* моделі

Саме ця утиліта мабуть згодиться для сабжу, бо не підтримує таймінги (для того ніби є вже закинута обгортка sub-to-audio) та piper досить легкий і може бути корисним вторинно.

« Змінено: 2026-08-18 14:27:38 від ps »

Відсутній BeSiDa

  • Письменник
  • *****
  • дописів: 512
  • Карма: +7/-0
UPD. випадково наткнувся на утиліту piper, яка дозволяє озвучувати СИРИЙ текст:

sudo dnf install pipx espeak-ng ...
Ви натрапили не лише на пайпер, але й на систему еспік-нг. Саме це є системою синтезу голосу з тексту. В даних є багато голосів (які можна модифікувати додатково) багатьма мовами. Крім озвучування вона може перетворити сирий текст на розмічений для озвучування текст (для інших систем).

Відсутній ps

  • Графоман
  • ****
  • дописів: 261
  • Карма: +4/-0
    • Мої дописи на DevZone
Я поки згенерив з rask.ai 99% треків AA, опублікував мод, де можна оцінити якість:
https://www.moddb.com/downloads/gta-san-andreas-ukrainian-police-radio-dub-saataa | дзеркало

І є ще децентралізований репозиторій Radicle / Git, де контролюю версії і на відміну від моду вище, цей репозиторій буде містити інші компоненти гри:
rad:z2QjpWXimVYgH1L23bAeBuCPJKtic

Щодо rask, в нього бувають заскоки з розпізнаванням голосу акторів, мульти-сцени він не дуже розуміє. А ось одноголосі з фоновими ефектами от як радіо-переговори - обробляє досить добре. Пайпер там поряд не валявся.

Ну і ще, якщо перекладаєте на безкоштовному плані rask, то зклеюйте в хвилини, бо 3 відео йому що на хвилину що на 10 секунд, а так вийде "оптом"

concat.txt:
file Track_045.mp3
file Track_046.mp3
file Track_047.mp3
file Track_048.mp3
file Track_049.mp3
file Track_050.mp3
ffmpeg -f concat -safe 0 -i concat.txt 45-50.mp3і потім порізати назад
ffmpeg -i 46-50.ogg -f segment -segment_time 9.557313 -c copy Track_%03d.ogg* тут з досвіду VC мають значення точні довжина / розмір треку для буферу гри тому звертаю увагу на таймінги по вихідним фреймам - вони можуть різнитися, отже або форматування / корекція в Audacity або робота з буфером рушія (що не бажано якщо це універсальний продукт а не ваш само-орієнтований мод)



Тут в принципі я дійшов висновку, що навіть комерційні моделі не дотягують до озвучення багато-персонажних сцен і їх треба:
а) або кропати і згодовувати окремо
б) або просто отим пайпером зібрати в сіру масу

Ще спробував одноголосі російські озвучки GTA, щоб прикинути якість занурення в ігрровий процес і дійшов до висновку що деякі сцени не варто перекладати без живих акторів. От як наприклад автор переклав радіо балачки, а я довго думав хто це триндить в машині. Тому переклав тільки теку AA і тому вона окремим модом, інші моделі буду підбирати а деякі - лишу оригіналами. Короче не вийде з бігу все одним махом - це довга і складна робота. Кожен файл треба пропускати руками через власні вуха. Файлів в GTA SA ~2k, за тиждень на пару з комерційним ШІ я самостійно переклав тільки 65.

UPD. кому цікаво, згенерував переклад CUTSCENES (поки не грав, але з прослуховування окремих доріжок - вийшов трешак =))
UPD. вийшов не такий вже й трешак, як для першої спроби - відео.
« Змінено: 2026-08-29 04:09:03 від ps »