Секретный код таланта

XXII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Секретный код таланта

Пещерова Д.А. 1
1Муниципальное общеобразовательное учреждение «Средняя общеобразовательная школа с углубленным изучением отдельных предметов № 19»
Крупенёва Н.Д. 1
1Муниципальное общеобразовательное учреждение «Средняя общеобразовательная школа с углубленным изучением отдельных предметов № 19»
Автор работы награжден дипломом победителя I степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

Музыка - это искусство, которое может тронуть душу человека. Музыкальное произведение - это законченная музыкальная мысль, выраженная в звуках. Другими словами - это цепочка нот, мелодий, ритмов, гармоний. Одни произведения мы называем мировыми шедеврами, узнаем их на слух, их популярность не теряет своей актуальности долгое время. К мировым шедеврам можно отнести такие произведения, как «К Элизе» Л. Бетховена [1] или «Вальс цветов» П. И. Чайковского [2]. Первое произведение было написано более 200 лет назад, а второе – более 100 лет назад. А другие произведения мы слышим и забываем, так как они не вызывают в нас никаких эмоций. Можно предположить, что успех произведения зависит от таланта композитора. Но как тогда объяснить любовь к русским народным песням и их многовековую популярность, ведь у них нет как такового композитора, их придумал сам народ. С точки зрения популярности и известности можно сравнить музыку к балету «Лебединое озеро» П.И. Чайковского и всеми любимую народную песню «Во поле берёза стояла». Для русского человека эти произведения одинаково любимы и знакомы. Несмотря на безусловную виртуозность первого произведения, второе ничуть не уступает ему по силе эмоций, которые оно вызывает в сердцах слушателей. Кроме того, музыка Чайковского невероятно многогранна и сложна, а русская народная песня проста и не требует зачастую даже какого-либо аккомпанемента. Так с чего же начинается музыкальное произведение? С мелодии в голове у композитора? Каким образом и откуда она возникает? Какие изменения происходят с мелодией в голове у композитора, а потом и в нотной тетради, прежде чем эта мелодия превращается в законченное музыкальное произведение? Все эти вопросы не имеют точного ответа, так как творческий процесс крайне сложен для понимания и интерпретации. Мы никак не сможем узнать у Бетховена, Чайковского и других великих композиторов, как они придумывали свои шедевры. А композитора русской народной песни и вовсе нет, так как её придумал народ. Возможно, это была простая русская женщина, которая косила сено в поле, глядя на кудрявую березу у реки. Так могла родиться знаменитая русская народная песня, но мы этого никогда не узнаем. Однако, разобраться в данном вопросе мне поможет компьютер. На Рис. 1 приведен схематический план моего проекта:

 

Рис. 1. Схематический план научно-практической работы пошагово (а – г)

Я попробую воспроизвести процесс создания мелодии с помощью компьютерной программы, а вместо «таланта» буду использовать случайный набор последовательностей нот и их длительностей для создания мелодий. В настоящее время множество процессов, которые традиционно совершал исключительно сам человек, выполняют компьютерные программы. Например, этот текст я сейчас пишу с помощью компьютера, а раньше мне бы пришлось писать его ручкой на бумаге или пользоваться печатной машинкой. До недавнего времени эти процессы не касались творчества и искусства. Сейчас одним из современных и перспективных направлений в музыке является «Музыкальная информатика». Это наука на стыке нескольких дисциплин: информатики, музыки, математики. Применение компьютерных технологий для оцифровывания, анализа и создания музыкальных произведений в современном мире имеет важную роль. В отличие от классических произведений, современная музыка всё чаще создаётся с помощью компьютерных программ, в том числе с использованием технологий Искусственного Интеллекта. Во многих высших учебных заведениях в области музыкального искусства существуют целые отделения и кафедры «Музыкальной информатики». Можно сказать, что это одна из новых профессий, которая будет крайне востребована в будущем. Причем специалистам в данной области необходимо как классическое музыкальное образование, так и навыки программирования, которые неотделимы от знаний математики.

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

Цель данной работы – сгенерировать с помощью компьютерной программы, написанной на языке программирования Python Искусственным Интеллектом (GigaChat), мелодию из 7 нот и сравнить результат генерации с мелодией, написанной автором работы.

Для достижения поставленной цели были решены следующие задачи:

  • Определить, что такое звук и как можно его представить и воспроизвести в цифровом виде;

  • Определить частоты для нот первой октавы от ноты «до» до ноты «до» второй октавы;

  • Составить словарь с названиями нот и соответствующими им значениями частот;

  • Написать мелодию, используя параметры (нота, длительность);

  • Составить список промтов в такой последовательности, чтобы на выходе получился рабочий код программы на языке программирования Python;

  • Проверить/запустить код программы в среде разработки JupiterNotebook для воспроизведения собственной мелодии и сгенерированной;

  • Оценить и сравнить получившиеся мелодии, сделать соответствующие выводы.

Любая музыка состоит из музыкальных звуков. Когда мы напеваем песню, нажимаем на клавишу фортепиано или дергаем гитарную струну — мы рождаем музыкальный звук. Вся музыкальная теория изучает взаимодействие музыкальных звуков между собой. Какие бывают музыкальные звуки? В первую очередь, звуки в музыке характеризуются высотой. Слышимый звук (не только музыкальный) мы можем охарактеризовать как высокий (например, писк комара) или низкий (например, гудение ветра в трубах). Каждой высоте звука в музыке соответствует определенное обозначение, которое называется нотой [4]. Ноты - это символы, которые используются для обеспечения высоты звука. В западной музыкальной системе существует 7 основных нот: до, ре, ми, фа, соль, ля, си, причем каждая нота имеет свою частоту (Гц): 261.63; 293.66; 329.63; 349.23; 392.00; 440.00; 493.88 [3]. Мелодия – это гармоничная последовательность нот различной длительности, записанная в виде тактов определенной размерности.

  1. Компьютерная программа

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

  • Дискретность – алгоритм состоит из определенного набора шагов;

  • Понятность – алгоритм должен быть понятен исполнителю;

  • Точность – алгоритм должен давать конкретные инструкции для каждого шага;

  • Результативность – алгоритм должен приводить к поставленной цели.

Например, для достижения поставленной цели в этой работе алгоритмом является последовательность задач. Такой вид алгоритма называется линейный. Существует еще ветвящийся алгоритм – это когда в зависимости от условия могут выполняться разные последовательности шагов [4]. Примером такого алгоритма может быть поход в лес с классом: если погода хорошая, то я иду с классом в лес, а если плохая – остаюсь дома. Есть еще циклический алгоритм – это циклы повторяющихся действий, пока не будет выполнено условие или достигнута цель. Например, каждый день и каждый год я хожу в школу учиться, пока не закончу 11 класс.

По этим же принципам строятся алгоритмы, которые используются для создания компьютерных программ. С точки зрения компьютерной программы:

Алгоритм – это система команд, которая определяет, как из набора входных данных получить набор выходных данных.

Система команд – это набор инструкций, которые определяют действия, которые должен выполнить исполнитель.

Исполнитель – это объект, который может выполнять команды.

Входные данные– это данные, которые используются алгоритмом для получения выходных данных.

Выходные данные – это данные, которые получаются алгоритмом в результате выполнения [5].

Современный язык программирования Python (Питон) можно рассматривать как исполнителя, так как он обладает всеми необходимыми качествами:

  • Python можно использовать для вывода текста, изображений и других данных на экран (мы будем использовать его для воспроизведения мелодий);

  • Python можно использовать для чтения данных из файлов, клавиатуры, и других программ (мы будем использовать его для чтения и распознавания нот);

  • Python можно использовать для управления другими программами и устройствами (для воспроизведения мелодий Python будет использовать модуль winsound).

Компьютер не может "слышать" ноты, как человек. Для того, чтобы компьютер мог работать с нотами, их необходимо преобразовать в цифровой формат. Для этого используется цифровой формат MIDI.

MIDI (Musical Instrument Digital Interface) – это стандартный протокол для передачи музыкальной информации. MIDI-файлы содержат информацию о нотах, их длительности, громкости и других параметрах. Для воспроизведения нот цифровой сигнал MIDI преобразуется в звук, а звуковая карта компьютера преобразует цифровой сигнал в аналоговый сигнал, который можно услышать через динамики.

Звуковая карта – это устройство, которое преобразует цифровой сигнал в аналоговый. Этот сигнал можно услышать через динамики компьютера. В этой работе для воспроизведения звука нот выбран модуль winsound в Python, который позволяет воспроизводить звуковые файлы в операционных системах Windows. Для того, чтобы написать мелодию и воспроизвести её на компьютере, необходимо написать компьютерную программу.

Компьютерная программа – это набор инструкций, данных и алгоритмов, предназначенный для выполнения на компьютере. Создать компьютерную программу можно двумя способами:

  1. Самостоятельно, если предварительно изучать программирование [5];

  2. С помощью языковой модели Искусственного Интеллекта (ИИ) GigaChat от Сбербанка [6];

В этой работе в качестве алгоритма будет составлен список последовательных промтов для модели ИИ GigaChat. Что такое модель ИИ? Представьте себе огромную библиотеку, в которой хранятся книги на всех языках мира. Эта библиотека - это языковая модель искусственного интеллекта. Она умеет читать и понимать эти книги, а также писать новые. Как работает языковая модель?Сначала она учится: ей дают много текстов на разных языках, чтобы она могла понять, как устроен язык. Потом она может выполнять разные задачи. Например, она может переводить текст с одного языка на другой, писать тексты на разных языках (статьи, стихи, сценарии, отвечать на вопросы) и многое другое! Языковая модель - это очень мощный инструмент, который может быть использован для самых разных целей, например:

  • Для обучения: может помочь учить новые языки, переводить тексты и находить ответы на различные вопросы;

  • Для работы: может помочь писать письма, генерировать отчеты, общаться с клиентами и многое другое;

  • Для творчества: может помочь писать стихи, сочинять музыку, рисовать картины и многое другое;

  • Решать проблемы: может помочь решить сложные задачи, генерируя идеи, анализируя информацию и предлагая варианты решения [6].

  1. Создание промтов

Команды для модели ИИ называются промтами. Простыми словами, промт - это инструкция для ИИ.Промт (от английского слова «prompt» – побуждать) - это мощный инструмент, который позволяет управлять ИИ. Чем лучше сформулирован промт, тем лучше результат. Далее приведено несколько советов от GigaChat по составлению промта:

  • Будь конкретным. Чем четче ты сформулируешь свою задачу, тем лучше ИИ ее выполнит;

  • Используй простые слова. ИИ не всегда понимает сложные слова и фразы;

  • Разбивай задачу на этапы. Если задача сложная, раздели ее на несколько более простых задач;

  • Проверяй результат. После того, как ИИ выполнит твою задачу, проверь, правильно ли он ее выполнил.

Для составления правильной последовательности промтов (то есть моего алгоритма) я обратилась за помощью к ИИ. Мой промт: «составь алгоритм действий для создания самой простой программы на языке программирования Python с использованием модуля winsound, которая воспроизводит и определённую мелодию из заданного набора нот с определенной длительностью и может генерировать случайным образом новые мелодии из этих нот».

Вот какой получился алгоритм для создания простой программы на Python с использованием модуля winsound:

  • Импортируем необходимые модули:

Комментарии: импортируем модули winsound и random, которые нам понадобятся для воспроизведения звуков и генерации случайных чисел.

  • Определяем набор нот и длительностей:

Комментарии: определяем список notes из 7 нот, которые мы будем использовать для создания и генерации мелодии, и список durations, который содержит все длительности нот.

  • Создаем функцию для воспроизведения мелодии:

Комментарии: создаем функцию play_melody (notes, durations), которая принимает списки нот и длительностей в качестве аргументов и воспроизводит их по очереди.

  • Создаем функцию для воспроизведения заданной мелодии:

Комментарии: создаем функцию generate_random_melody(notes, durations), которая генерирует случайную мелодию из заданного списка нот и длительностей.

  • Вызываем функцию для генерации и воспроизведения случайной мелодии:

Комментарии: вызываем функции generate_random_melody() и play_melody(), чтобы сгенерировать и воспроизвести случайную мелодию.

Итак, для проверки кода мне понадобится аккаунт Google (я воспользуюсь аккаунтом моей мамы) и сайт GoogleColab, в котором есть консоль – окно для размещения кода и функция запуска кода run.

  1. Результат работы

Поскольку модуль winsound может воспроизводить только звуки с целыми частотами (int),

Мой словарь нот notes:

notes = {'Do': 261, 'Re': 294, 'Mi': 330, 'Fa': 349, 'Sol': 392, 'Lya': 440, 'Si': 494}

Мои мелодии:

  1. «Во поле березка стояла»

melody = (('Lya', 1/4), ('Lya', 1/4), ('Lya', 1/4), ('Lya', 1/4), ('Sol', 1/2), ('Fa', 1/4), ('Fa', 1/4), ('Mi', 1/2), ('Re', 1/2), ('Lya', 1/4), ('Lya', 1/4), ('Lya', 1/4), ('Lya', 1/4), ('Sol', 1/2), ('Fa', 1/4), ('Fa', 1/4), ('Mi', 1/2), ('Re', 1/2), ('Mi', 1/2), ('Mi', 1/4), ('Fa', 1/4), ('Sol', 1/2), ('Fa', 1/4), ('Fa', 1/4), ('Mi', 1/2), ('Re', 1/2), ('Mi', 1/2), ('Mi', 1/4), ('Fa', 1/4), ('Sol', 1/2), ('Fa', 1/4), ('Fa', 1/4), ('Mi', 1/2), ('Re', 1/2))

  1. «Каникулы»

melody = (('Lya', 1/4), ('Fa', 1/4), ('Mi', 1/2), ('Sol', 1/4), ('Mi', 1/4), ('Re', 1/2), ('Do', 1/4), ('Re', 1/4), ('Mi', 1/4), ('Mi', 1/4), ('Lya', 1), ('Sol', 1/4), ('Fa', 1/4), ('Mi', 1/2), ('Fa', 1/4), ('Mi', 1/4), ('Re', 1/2), ('Do', 1/4), ('Re', 1/4), ('Mi', 1/4), ('Mi', 1/4), ('Lya', 1), ('Sol', 1/4), ('Fa', 1/4), ('Mi', 1/2), ('Fa', 1/4), ('Mi', 1/4), ('Re', 1/2), ('Do', 1/4), ('Re', 1/4), ('Mi', 1/4), ('Sol', 1/4), ('Lya', 1))

Здесь длительности нот (duration) указаны сразу с нотами для удобства. 1 – это целая нота, она самая длинная; 1/2 – это половинная нота, половина по длительности от целой ноты; 1/4 – это четвертная нота, составляет четверть от целой и половина от половинной. Другие длительности нот в этой работе не используются.

Код программы Python для воспроизведения мелодии «Во поле берёзка стояла»:

Код программы для генерации мелодии из 7 нот:

В качестве результата своей работы получилось воспроизвести и записать 5 мелодий:

  1. Мелодия №1: «Во поле берёзка стояла»;

  2. Мелодия №2: генерация 1;

  3. Мелодия №3: генерация 2;

  4. Мелодия №4: генерация 3;

  5. Мелодия №5: «Каникулы»

Чтобы проверить мою гипотезу, я создала анкету с вопросами для каждой мелодии: «Знакома ли вам эта мелодия?» (Ответы: да/нет/что-то знакомое, но вспомнить не могу) и «Нравится ли вам эта мелодия?» (Ответы: да/нет). По результатам опроса в моём классе (2 «з») я составила таблицу с ответами для каждой мелодии (Таблица 1).

Таблица 1. Результаты анкетирования

мелодии

Узнал мелодию

Не узнал мелодию

Не могу вспомнить, но знаю

Нравится

Не нравится

Нравится

Не нравится

Нравится

Не нравится

1

6

1

7

5

3

2

2

3

1

10

7

2

1

3

6

1

7

5

4

1

4

4

2

8

7

3

 

5

4

1

8

4

7

 

Как видно из таблицы 1, мелодию русской народной песни «Во поле берёзка стояла» узнали всего 7 человек, не смогли вспомнить – 5 человек. Понравилась мелодия 16 ученикам в классе и не понравилась 8. То есть формула хита (или шедевра, которому более 200 лет) такова: вдвое больше людей, которым он нравится. Теперь оценим по этой формуле мелодии, которые сгенерировала компьютерная программа: мелодии № 2 не хватило до хита 1 голоса, мелодия № 3 – хит, мелодии № 4 не хватило до хита 4 голоса. А вот мелодия № 5 (моя мелодия) оказалась самым настоящим суперхитом! Она набрала 19 лайков и всего лишь 5 дизлайков. Интересным наблюдением является зависимость «узнаваемости» мелодии от её восприятия. Например, среди сгенерированных программой мелодий больше всего узнаваемым получился хит № 3 – его узнали 10 учеников. То же самое наблюдается и с моей мелодией. Я старалась быть оригинальной, но 11 учеников ответили, что знают мою мелодию.

Выводы

В процессе выполнения данной работы я научилась формулировать цели и задачи, чтобы эффективно взаимодействовать с моделью Искусственного Интеллекта (GigaChat). С помощью правильно сформулированных промтов я смогла создать совместно с GigaChat компьютерную программу на языке программирования Python. С помощью этой программы я записала пять мелодий из 7 нот – 1 мелодию известной русской народной песни «Во поле берёзка стояла», 1 свою авторскую мелодию «Каникулы» и 3 мелодии, которые сгенерировала случайным образом сама компьютерная программа. Основной смысл моей работы заключался в том, чтобы выяснить, могут ли компьютерные программы, способные писать музыку, заменить композитора-человека или могут быть вспомогательным инструментом композитору-человеку. Целью данной работы являлась проверка моей гипотезы с помощью опроса моих одноклассников. После моего доклада в классе о проделанной работе я раздала им анкеты и дала прослушать полученные с помощью программы мелодии. По результатам опроса можно заключить, что компьютерная программа может генерировать приятные мелодии, которые нравятся слушателям. Однако, у таких мелодий низкий показатель оригинальности (большинство опрошенных одноклассников отметили, что знают эти мелодии). Также большинство узнали известную мелодию русской народной песни, которая уже более двухсот лет является хитом. А моя авторская мелодия победила даже известную русскую народную песню по количеству ответов «Нравится». При этом моя мелодия казалась более знакомой моим одноклассникам, чем известная русская народная песня. Самый высокий показатель оригинальности оказался у мелодий, сгенерированных компьютерной программой. Поэтому можно сделать вывод, что компьютерная программа не может заменить человека-композитора, но может помогать ему создавать музыкальные шедевры и подсказывать ему оригинальные музыкальные решения. Я считаю, что такой способ написания музыки с помощью компьютерных программ будет способствовать появлению новых современных музыкальных шедевров.

Также в рамках данной работы я сгенерировала песню с помощью программы ИИ SunoAI. Промт (текст песни) я написала сама, задала жанр (livelypop) в настройках программы. Музыку и голос сгенерировала нейросеть автоматически. Далее я скачала получившийся трек песни, в редакторе видеоклипов Clideo.com создала проект клипа: на музыкальную дорожку (трек, сгенерированный ИИ) наложила картинки, сгенерированные моделью ИИ (Кандинский). Промты для генерации картинок соответствуют тексту песни, но я добавила в них свои коррективы. Ссылку на клип публикую здесь: https://youtu.be/TUOwxDp3Y4o?feature=shared. Буду проводить эксперимент дальше и выяснять, может ли искусственный интеллект создавать музыкальные хиты! Оценивать я буду это по количеству лайков.

Список литературы:

1. Инфоурок [Электронный ресурс] – Образовательная платформа. – Электронные данные. Режим доступа: URL.: https://infourok.ru/user/medvedev-danila-romanovich/blog/l-bethoven-k-elize-73186.html (дата обращения 12.05.2024 г.);

2. Культура.РФ [Электронный ресурс] - Информационный портал. – Электронные данные. Режим доступа: URL.: https://www.culture.ru/persons/8307/petr-chaikovskii (дата обращения 12.05.2024 г.);

3. Хабр [Электронный ресурс] – База знаний. – Электронные данные. Режим доступа: URL.: https://habr.com/ru/articles/592909/ (дата обращения 24.03.2024 г.);

4. А. Зарецкий, А. Труханов А я был в компьютерном городе / А. Зарецкий, А. Труханов — 1-ое. — Москва: Просвещение, 1990 — 208 c;

5. Джейсон Бриггс Python для детей. Самоучитель по программированию/пер. с англ. Станислава Ломакина [науч. ред. Д. Абрамова] — 1-ое. — Москва: Манн, Иванов и Фербер, 2017 — 320 c.

6. Сбер.Исследователь [Электронный ресурс] – Новостной портал. – Электронные данные. Режим доступа: URL.: https://developers.sber.ru/help/gigachat (дата обращения 24.03.2024 г.).

Приложение 1

Проект анкеты с ответами:

Прослушайте мелодию, узнаёте ли вы её (№1)?

  • Да

  • Нет

  • Что-то знакомое, но вспомнить не могу

Нравится ли вам эта мелодия (№1)?

  • Да

  • Нет

Прослушайте мелодию, узнаёте ли вы её (№2)?

  • Да

  • Нет

  • Что-то знакомое, но вспомнить не могу

Нравится ли вам эта мелодия (№2)?

  • Да

  • Нет

Прослушайте мелодию, узнаёте ли вы её (№3)?

  • Да

  • Нет

  • Что-то знакомое, но вспомнить не могу

Нравится ли вам эта мелодия (№3)?

  • Да

  • Нет

Прослушайте мелодию, узнаёте ли вы её (№4)?

  • Да

  • Нет

  • Что-то знакомое, но вспомнить не могу

Нравится ли вам эта мелодия (№4)?

  • Да

  • Нет

Прослушайте мелодию, узнаёте ли вы её (№5)?

  • Да

  • Нет

  • Что-то знакомое, но вспомнить не могу

Нравится ли вам эта мелодия (№5)?

  • Да

  • Нет

Комментарии к анкетированию. Классу предлагается прослушать 5 мелодий: мелодия №1 – «Во поле березка стояла». Её должны узнать все или почти все. Мелодия №5 – моя мелодия «Каникулы». Остальные мелодии (№2-4) генерирует программы случайным образом, они могут повторить уже знакомые мотивы, ведь не так много вариантов можно придумать из 7 нот. Предполагается, что они уже все придуманы. Затем предлагается оценить каждую мелодию. На основании анкетирования выносится решение, может ли компьютерная программа заменить композитора? Можно ли использовать компьютерную программу для создания шедевра?

Просмотров работы: 23