💭 OpenAI Whisper - изкуствен интелект…

Още малко мои разсъждения по темата “Изкуствен Интелект” (ИИ) или “Artificial Intelligence” (AI).

Няколко думи за опасностите от съществуването на ИИ

Не веднъж съм изразявал позиция, че изкуственият интелект сам по себе си не представлява заплаха за нищо в заобикалящия ни свят. Причината, хората да се страхуват от него е това, че не разбират какво е и нямат никаква идея до къде се простират възможностите му. От там идват всякакви фантасмагории за това, как ИИ ще отнеме работата на хората, как ще завладее и пороби човечеството, как ще унищожи човешкия вид…

Всъщност, перспективата човешки дейности да бъдат частично и изцяло заменени от ИИ съвсем не е за пренебрегване, защото това се случва на практика в реалния живот. Но причината за това не е в напредването на ИИ а в невъзможността или по-скоро в нежеланието на някои хора да се приспособят към промените в съвременния живот. Не е възможно човек да иска да си живее в неговата си пещера, да грухти и мучи, да яде банани и насекоми, и накрая да се сърди, че не го взимат на работа като ядрен физик… все пак той може много добре да обясни какво е ядро… прилича на жълтъка на яйцето, нали? 😃 Ами, тук няма как да бъде иначе - ако имаме някакъв избор, сведен до ИИ или неандерталец - ясно е кой ще получи работата. Същото важи и за хора, които делегират собствената си работа на ИИ, защото е по-лесно. Така се превръщат в (излишно) междинно звено между поставянето на задачата и нейното реално изпълнение.

Освен това, няма много възможност други негативни неща да ни се случат, защото ИИ сам по себе си не може да взима самостоятелни сериозни решения. Колкото и да не ни се вярва. Ако нещо лошо е било направено от ИИ, то зад тази постъпката всъщност стои някой човек, който използва ИИ като инструмент за злонамерени действия.

Не може всичко да е негативно

Разбира се, че има и ползи от съществуването на ИИ. Иначе нямаше да има нужда да си правум труда да създаваме невронни мрежи и изкуствен интелект. Но за какво пък ни е толкова полезно съществуването на ИИ?

Моите примери от целенасоченото използване на ИИ са сведени до две големи приложения: Генерирането на изображения за книга и “прослушването” на текст във видео и превод на друг език (английски -> български).

Книгата

Започвам с книгата: Въпрос без отговор, или пък два?

Ами повечето изображения в тази книга бяха генерирани с помощта на ИИ - комерсиална услуга онлайн (GencCaft), за която за да използвам - трябваше да платя абонамент. Как работи? В текстово поле пиша какво искам да имам на картинка, задавам някакви параметри (вида анимация, цветове и др.) и като резултат от работата на ИИ получавам някакво изображение. Ако не ми хареса - опитвам отново със същия текст или перифразирам описанието на това, което търся - и така, докато получа задоволителен резултат.

Разбира се, че не мога да получа перфектен резултат - не случайно изкуствения интелект е изкуствен. И не случайно никога няма да може да замени естествения интелект. Но резултатите често са задоволителни за дадената цел, не перфектни - но вършат работа.

Преводите

И така, наскоро при ученето ми в ЧТК ми се наложи да гледам внушителни количества видео материали (уроци) на английски език. Не ми е проблем, защото съм свикнал с техническа литература на английски, но не за всички е лесно да се справят с техническата терминология.

И така се роди идеята защо да не опитам да ги преведа, какво пък толкова - от текстов файл до субтитри разликата е само една команда… Речено-сторено, зачетох как да превърна речта от видео файловете в текст на английски, за да могат после да бъдат преведени и на български. Най-лесния вариант е да го направя ръчно - слушам какво се говори и го записвам в текстов файл.

Да, ама не! Всеки видео файл е с продължителност около 5 часа. До по-следващите коледни празници може би ще успея!

Здравей, Whisper!

Знаем със сигурност, че Google някак могат да правят това автоматично в YouTube. Качваме видео и при определени условия можем да получим автоматичен текст на видеото, в някои случаи дори превод. Изглеждат неприятно, често липсват препинателни знаци или начало и край на изреченията, но върши някаква работа. Значи, вероятно има достъпни варианти софтуерно да се постигне този резултат и в домашни условия, без да се качва видеото в Youtube.

Започнах да търся първоначално онлайн услуги, които правят това. Но нямам желанието да давам пари или да се записвам към нова абонаментна услуга, за да преведа няколко файла и после да нямам повече нужда от това. При тези условия за предпочитане би било да е софтуер, който мога да използвам на моя компютър, и по възможност да не се налага да го купувам. Ами, оказа се, че има и такъв вариант.

Така намерих вариант за използване на OpenAI-Whisper. Какво е Whisper? Това накратко е система за автоматично разпознаване на реч, част от OpenAI проекта (онзи проект, който прави възможно съществуването на ChatGPT).

И така, какво можем да направим с Whisper? Можем да генерираме текст от разговорната реч във видеото. За пример нека видим няколко команди, с които можем да постигнем това, започвайки от подготовка на средата:

mkdir ~/.venv
python3 -m venv ~/.venv/whisper
source ~/.venv/whisper/bin/activate
pip3 install yt-dlp openai-whisper

След тези 4 команди вече имаме работеща среда с OpenAI-Whisper и програма, наречена yt-dlp, която можем да използваме от командния ред, за да изтеглим видео от YouTube. Нека опитаме с някоя песен, например Queen - Bohemian Rhapsody:

yt-dlp 'https://www.youtube.com/watch?v=irp8CNj9qBI'

И така, изтеглили сме видеото, остава да използваме OpenAI-Whisper за да получим текст от него:

whisper Queen\ -\ Bohemian\ Rhapsody\ \[irp8CNj9qBI\].mkv --model medium.en --language English --word_timestamps True --max_words_per_line 20 -f 'srt' -o .

И получаваме следния резултат:

[00:00.000 --> 00:13.400]  Is this the real life? Is this just fantasy? Caught in a landslide, no escape from reality
[00:15.000 --> 00:23.320]  Open your eyes Look up to the skies and see
[00:24.320 --> 00:30.320]  I'm just a cool boy I need no therapy
[00:30.880 --> 00:38.520]  Because I'm easy come, easy go Little high, little low
[00:38.520 --> 00:47.540]  Anyway the wind blows Doesn't really matter to me
[00:47.540 --> 00:50.640]  To me
[00:56.600 --> 01:04.320]  Mama just killed a man Put a gun against his head
[01:04.840 --> 01:14.600]  Pulled my trigger, now he's dead Mama, life had just begun
[01:15.320 --> 01:20.940]  But now I've gone and thrown it all away
[01:26.920 --> 01:36.900]  Mama, ooh, didn't mean to make you cry If I'm not back again this time tomorrow
[01:36.900 --> 01:43.740]  Carry on, carry on Cause if nothing really matters
[01:53.920 --> 02:03.800]  Too late, my time has come Sent shivers down my spine
[02:03.800 --> 02:10.640]  Body's aching all the time Goodbye everybody
[02:11.640 --> 02:21.040]  I've got to go Gotta leave you all behind and face the truth
[02:21.640 --> 02:36.860]  Mama, ooh, I don't wanna die I sometimes wish I'd never been born at all
[03:05.820 --> 03:09.100]  I see a little silhouetto of a man
[03:09.100 --> 03:12.540]  Scaramouche, Scaramouche Will you do the bandango?
[03:12.840 --> 03:16.320]  Thunderbolts are lightning Very, very frightening me
[03:16.320 --> 03:20.280]  Galileo, Galileo Galileo, Galileo
[03:22.560 --> 03:26.120]  I'm just a cool boy Nobody loves me
[03:26.120 --> 03:29.040]  He's just a poor boy From a poor family
[03:29.040 --> 03:32.260]  Sparing his life from this monstrosity
[03:33.640 --> 03:36.880]  Easy come, easy go Will you let me go?
[03:37.520 --> 03:40.740]  Bismillah, no we will not let you go Let him go!
[03:43.580 --> 03:46.820]  Let me go
[03:53.680 --> 03:57.400]  Oh, Mamma mia, Mamma mia Mamma mia, let me go
[03:58.300 --> 04:07.060]  Beelzebub has a devil born aside for me, for me, for me
[04:14.660 --> 04:19.640]  So you think you can stop me and spit in my eye
[04:21.400 --> 04:25.660]  So you think you can love me and leave me to die
[04:27.380 --> 04:31.660]  Oh baby, can't do this to me baby
[04:32.820 --> 04:37.380]  Just gotta get out, just gotta get right out of here
[04:58.760 --> 05:07.660]  Oh yeah, oh yeah, oh yeah
[05:11.200 --> 05:18.000]  Nothing really matters, anyone can see
[05:18.000 --> 05:30.000]  Nothing really matters, nothing really matters to me
[05:48.000 --> 05:48.880]  Thanks for watching!

Ами, това е! Имаме текст на песента, автоматично разпознат от изкуствен интелект. Сега можем да го преведем с помоща на друг вид изкуствен интелект (но във вид на онлайн услуга) и, например, да направим субтитри на български.

Не винаги всичко е лесно

Разбира се, че понякога има и някои затруднения. Например, какво ще правим, ако искаме да преведем нещо от друг език, различен от английски? Да, не винаги онова, което е направено да работи в дадена ситуация ще работи по същия начин във всички ситуации. И по отношение на ИИ това е много валидно - не очаквайте добри резултати, ако искате да използвате същия метод за реч на друг език:

yt-dlp 'https://www.youtube.com/watch?v=TxAAB58nNLs'
whisper Joe\ Dassin\ -\ A\ toi\ \(Audio\)\ \[TxAAB58nNLs\].webm --model medium --language French --word_timestamps True --max_words_per_line 20 -f 'srt' -o . --device cuda

Voilà! Всъщност, получихме някакъв резултат, ето го и него:

[00:13.740 --> 00:16.540]  A toi
[00:31.000 --> 00:31.880]  A toi
[00:32.880 --> 00:36.000]  A la petite fille que tu étais
[00:36.920 --> 00:39.740]  A celle que tu es encore souvent
[00:39.740 --> 00:42.540]  A ton passé, à tes secrets
[00:42.540 --> 00:45.000]  A tes anciens princes charmants
[00:45.520 --> 00:47.460]  A la vie, à l'amour
[00:47.460 --> 00:49.440]  A nos nuits, à nos jours
[00:49.440 --> 00:52.240]  A l'éternel retour de la chance
[00:52.240 --> 00:55.060]  A l'enfant qui viendra
[00:55.060 --> 00:56.000]  Qui nous ressemblera
[00:56.080 --> 01:00.180]  Qui sera à la fois toi et moi
[01:01.880 --> 01:03.080]  A moi
[01:04.240 --> 01:07.080]  A la folie dont tu es la raison
[01:08.040 --> 01:11.540]  A mes colères sans savoir pourquoi
[01:11.540 --> 01:16.080]  A mes silences et à mes trahisons quelquefois
[01:17.040 --> 01:18.080]  A moi
[01:19.530 --> 01:22.670]  Au temps que j'ai passé à te chercher
[01:22.670 --> 01:26.530]  Aux qualités dont tu te moques bien
[01:27.170 --> 01:29.190]  Aux défauts que je t'ai cachés
[01:29.190 --> 01:32.030]  A mes idées de baladins
[01:32.030 --> 01:34.050]  A la vie, à l'amour
[01:34.050 --> 01:35.970]  A nos nuits, à nos jours
[01:35.970 --> 01:38.910]  A l'éternel retour de la chance
[01:38.910 --> 01:41.510]  A l'enfant qui viendra
[01:41.510 --> 01:43.310]  Qui nous ressemblera
[01:43.310 --> 01:46.410]  Qui sera à la fois toi et moi
[01:48.230 --> 01:50.050]  A nous
[01:50.050 --> 01:54.170]  Aux souvenirs que nous allons nous faire
[01:54.730 --> 01:57.890]  A l'avenir et au présent surtout
[01:57.890 --> 02:03.070]  A la santé de cette vieille tête qui s'en fout
[02:03.070 --> 02:05.450]  A nous
[02:05.450 --> 02:09.090]  A nos espoirs et à nos illusions
[02:09.090 --> 02:13.210]  A notre prochain premier rendez-vous
[02:13.210 --> 02:18.050]  A la santé de ces millions d'amoureux qui sont comme nous
[02:18.050 --> 02:19.870]  A toi
[02:20.830 --> 02:24.270]  A la façon que tu as d'être belle
[02:24.270 --> 02:28.170]  A la façon que tu as d'être un moi
[02:28.170 --> 02:32.950]  A tes mots tendres un peu artificiels quelquefois
[02:32.950 --> 02:34.770]  A toi
[02:35.770 --> 02:39.610]  A la petite fille que tu étais
[02:39.610 --> 02:42.670]  A celle que tu es encore souvent
[02:42.670 --> 02:47.610]  A ton passé, à tes secrets, à tes anciens traces charmantes

Но превод - това вече е друга работа. Автоматичния превод на този текст май не работи както се очаква, не и директно на български.

Но по отношение на моята задача - превод на техническите видео уроци, резултатите са впечатляващи - със съвсем малки изключения се получиха почти перфектни captions и преведени субтитри.

Ще ни избие ли тоя пуст ИИ?

Както се вижда, употребата на ИИ може да бъде много полезно нещо - приложения има много и затова и се появява на първо място. Има необходимост за решаване на задачи с помощта на изкуствен интелект и затова ни е важно неговото съществуване. Има изключително много приложения за ИИ, които са важни в нашето ежедневие:

  • Разпознаване на регистрационни номера на автомобили
  • Определяне на пътен трафик (автомобили, хора, др.) - преброяване на трафик през дадена точка
  • Разпознаване на изображения - лица, пръстови отпечатъци, разделно събиране на боклук и др.
  • Разпознаване на глас - идентификация на хора чрез глас
  • Разпознаване на реч (както вече видяхме по-нагоре) - гласови команди
  • Управление на процеси, извършване на рутинни задачи
  • И много, много други

Дали ще ни навреди ИИ? Може да ни направи по-мързеливи. Но е необходимо, да разполагаме с ИИ като инструмент за автоматизиране на определени човешки дейности. Защото с разрастването на градовете става все по-трудно управлението на дадени процеси в тях, и в точно такива случаи на помощ идва ИИ.

Но ще ни навреди ли? Категорично не. Не си представям OpenAI-Whisper да изскочи от екрана на компютъра ми и да започне да ме души 🤣 И друг път съм го казвал и продължавам да твърдя това: Инструментите сами по себе си са за да ни помагат, но какво правят хората с тях е друг въпрос. С лопата можем да прекопаем една градина и да насадим домати, нали? Но можем и да убием човек - всичко зависи от намеренията на хората, които стоят зад тези улесняващи живота ни инструменти. Може ли инструмент като OpenAI-Whisper да бъде използван с користни цели? Може, разбира се. Но няма да давам лоши идеи. Защото сме дошли на тази земя не за да се нараняваме, а за да се обичаме ❤️

updatedupdated2024-12-082024-12-08