Привет всем любителям музыки! У нас есть кое-что интересное, чтобы поделиться с вами! Ранее на нашем сайте мы уже рассматривали проигрывание мелодий с помощью функции Tone() на Arduino, но процесс создания кода для генерации песен с помощью платы Arduino был очень утомительным. В этой же статье мы рассмотрим как существенно упростить процесс генерации кодов для песен используя нашумевший в последнее время своими интеллектуальными способностями бот ChatGPT.
Подробно смыл работы нашего проекта показан в следующем видео. Как становится ясно после просмотра видео, мы просто просим ChatGPT написать код Arduino нужной нам мелодии и потом просто копируем этот код в нашу программу. Как говорится, современные технологии все больше упрощают наш труд до минимума.
Во-первых, мы проверим, сможет ли ChatGPT понять код из нашего проекта. После подтверждения мы попросим его сгенерировать коды для других песен, расширив диапазон мелодий, которые мы можем создать.
Схема проекта
Схема проекта для проигрывания мелодий на Arduino, созданных с помощью бота ChatGPT, приведена на следующем рисунке.
Проигрывание сгенерированных ChatGPT мелодий
Как видно из представленного выше видео, ChatGPT доказал свою способность исключительно хорошо понимать код. Теперь мы очень рады испытать его таланты и попросить его сгенерировать код для вечной классической песни «Happy Birthday».
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#ifndef PITCHES_H #define PITCHES_H int HappyBirthday_note[] = { NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_F4, NOTE_E4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4, NOTE_C4, NOTE_C5, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_AS4, NOTE_AS4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_F4 }; int HappyBirthday_duration[] = { 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2 }; #endif |
Мы загрузим этот код в нашу плату и проверим насколько эффективен ChatGPT.
Хотя это была отличная попытка, она все таки не совсем соответствовала тому, что мы хотели услышать. Итак, давайте попробуем еще раз! Как насчет того чтобы попробовать известную новогоднюю песенку "Jingle Bells"? Мы рады видеть, какие мелодические чудеса ChatGPT может придумать для этой классической мелодии!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#ifndef PITCHES_H #define PITCHES_H int JingleBells_note[] = { NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_G4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_E4 }; int JingleBells_duration[] = { 200, 200, 400, 200, 200, 400, 200, 200, 200, 200, 200, 200, 200, 400, 200, 200, 200, 200, 200, 200 }; #endif |
Попробуем тоже самое с еще одной очень известной классической песни “Twinkle Twinkle Little Star”.
1 2 3 4 5 6 7 8 9 10 11 |
#ifndef PITCHES_H #define PITCHES_H int TwinkleStar_note[] = { NOTE_C4, NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_C4 }; int TwinkleStar_duration[] = { 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 2 }; #endif |
Абсолютное совершенство! Как только мы подтвердим, что ChatGPT понимает код из нашего проекта, мы продолжим запрашивать коды для воспроизведения и других известных песен. И чтобы подняться на ступеньку выше, мы даже попробуем свои силы в более сложной песне, такой как «Кровавая Мэри» из Уэнсдей Аддамс.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#ifndef PITCHES_H #define PITCHES_H int BloodyMary_note[] = { NOTE_D5, NOTE_FS5, NOTE_A5, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_D6, NOTE_FS6, NOTE_A6, NOTE_G6, NOTE_D6 }; int BloodyMary_duration[] = { 8, 8, 4, 4, 8, 8, 8, 8, 8, 4, 4, 8, 8, 4, 8, 4, 8, 8, 4, 4, 8, 8, 8, 8, 4, 8, 8, 4, 4, 8, 8, 4, 8, 4, 8, 8, 4, 4, 8, 8, 8, 8, 4, 8, 8, 4, 4, 8, 8, 4, 8, 4, 8, 8, 4, 4, 8, 8, 8, 8, 4, 8, 8, 4, 4, 8, 8, 4, 8, 4, 8, 8, 4, 4, 8, 8, 8, 8, 4, 8, 8, 4, 4, 8, 8, 4, 8, 4 }; #endif |
К сожалению, в результате этого эксперимента стало очевидно, что код, сгенерированный ChatGPT для «Кровавой Мэри» из Уэнсдей Аддамс, и близко не соответствует оригиналу. Хотя цель использования инструментов искусственного интеллекта, таких как ChatGPT, состоит в том, чтобы упростить решение многих рутинных задачи и способствовать творчеству, все таки пока приходится признать ограничения на их использование.
Действительно, полностью полагаться на код, сгенерированный ИИ, может быть рискованно. Хотя ChatGPT демонстрирует впечатляющие возможности, но он не идеален и может выдавать неверные результаты. В зависимости от контекста это может привести к нежелательным последствиям, особенно при работе с критически важными приложениями или конфиденциальными задачами.
Заключение
Наше исследование сочетания ChatGPT с функцией Arduino tone() для создания музыки было захватывающим путешествием. Хотя мы видели понимание кода ChatGPT и его потенциал для создания мелодий, важно признать ограничения и потребность в человеческом опыте для обеспечения точности. Используя синергию между технологиями и творчеством, мы можем продолжать раздвигать границы музыкального самовыражения, прокладывая путь, на котором инструменты ИИ улучшают наши художественные усилия, уважая незаменимую роль человеческой изобретательности и здравого смысла.
442 просмотров