Простой генератор рэпа с исходниками на C# для любителей компьютеров

Всё обо всём. Место, где можно свободно общаться на любую тему, не связанную с фазой: политика, спорт, хобби, кино, книги и т.д. Старайтесь не оскорблять друг друга и не нарушать законодательства РФ!

Moderator: модераторы подфорумов

User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

ПРОСТОЙ ГЕНЕРАТОР РЭПА С ИСХОДНИКАМИ НА C#

Image

Рэп это речетатив, наложенный на музыку, на так называемый бит. Современные библиотеки искусственного интеллекта, после революции в синтезе речи по тексту и в глубоком обучении нейросетей, элементарно позволяют сделать автоматический генератор рэп-композиций. Мечта! Нажали на кнопочку и компьютер начинает синтезировать рэпчик, какждый куплет и каждая композиция - уникальны и не повторяют предыдущих. Если компьютер сам не синтезирует музыку, битки, то в той-же программе Discord Audio Player подключаете папку с битами, трансом или брейкбитом для паралельно звучания с речетативом, и - вуаля, компьютер становится домашним рэп-исполнителем. А с захватом системного звука и записью его в mp3 файлы можно записать несколько десятков композиций для своего телефона или - выложить их в сеть для скачивания. Ничего сложного в компьютерном синтезе рэпа, к счастью, нет, и в этой статье я расскажу, как это просто сделать, с демонстрацией исходным кодом на языке C# фирмы Microsoft. Итак, теперь немного теории.

Парой умных слов будучи сказано и на примерах показано, простой генератор речитатива основывается на принципах императивно-декларативного программирования. Декларативные определения теории записываются на процедурном языке, на C#. Синтез рэпа осуществляется снизу-вверх, со слогов до куплетов, так как синтез сверху-вниз, например, преобразованием текста в стих, сложен из-за необходимости синтаксического и морфологического разбора и не пишется за приемлемое время в несколько рабочих часов. Кроме того, нисходящий анализ очень ресурсоёмок и не позволяет синтезировать рэп в реальном времени, на лету, параkлельно с проигрыванием. Чего нет в подходе синтеза снизу-вверх!

Слово это объединение от двух до пяти морфем. Морфема это слог или общеупотребительный корень одного из языков.

Рифма к слову это замена в слове 20% морфем на случайные. Новое слово остаётся созвучным оригиналу, рифмуется с ним, но отличается от него - оно новое.

Строка это объединение от двух до пяти случайных слов.

Рифма к строке это замена всех слов на их рифмы, на рифмованные слова.

Куплет может быть одного из четырёх типов: 1, 2, 3, 4.

В куплете первого типа первая случайная строка рифмуется с третьей, а вторая случайная строк - с четвёртой.

В куплете второго типа первая случайная строка рифмуется со всторой, а третья случайная строка - с четвёртой.

В куплете третьего типа первая случайная строка рифмуется со второй, третьей и четвёртой строкой.

В куплете четвёртого типа первая случайная строка рифмуется с четвёртой, а вторая - с третьей.

Стих это объединение от двух до пяти случайных рифмованных куплетов.

Рэп-поток это непрерывное озвучивание генерируемых стихов, возможно с паралkельным звучанием музыки. Озвучивание текста осуществляется генератором речи по тексту на большой громкости и на большой скорости.

Вот и вся теория простого генератора рэп-композиций, программная реализация которой демонстрируется следующим листингом исходных кодов на языке C#. Звучание такого рэпчика чрезвычайно-захватывающе и заходит под трансовые композиции брейкбита в программе Discord Radio Player, ссылку на которую я дам в одном из следующих сообщений. Сегодня родился стиль ТрансРэп - компьютерный рэпчик, наложенный на транс или брейкбит!

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Speech.Synthesis;

namespace MachineSpeechLibrary
{
    public class Rap
    {
        protected string[] morphems = new string[]
        {
            "a","the","is","was","yes","no","are","you","we","he",
            "she","it","as","me","iam",
            "low","bis","ness","less","near",
            "far","in","on","under","before","late","under","after","of","off",
            "po","pi","pu","py","pe","to","ti","tu","te","ro",
            "ru","ri","re","wo","wi","wu","qo",
            "qi","qu","qe","pa","ta","ra","wa","qa","sa","da",
            "fa","ga","ha","ja","ka","la","lo","li","lu","le",
            "ly","le","ko","ki","ku","ky","ke","jo","ji","ju",
            "jy","je","ho","hi","hu","hy","he","go","gi","gu",
            "gy","ge","fo","fi","fu","fy","fe","do","di",
            "du","dy","de","so","si","su","sy","se","sistem","zo",
            "za","zi","zu","zy","ze","xo","xi","xu","xy","xe",
            "xa","co","ci","cu","cy","ce","ca","vo","vi","vu",
            "vy","va","bo","bi","bu","by","be","ba","no","ni",
            "nu","ny","ne","na","mo","mi","my","ma","mom","child",
            "guy","girl","father","mother","friend","boss",
            "sex","fuck","cock","dick","pussy","love","feel","like","seem",
            "exit","fail","quit","enter","login","run","press","start","stop","system","comp",
            "break","case","switch","net","inet","key","man","wooman",
            "all","wall","walk","go","inter","play","kiss","for","goto","mail","chat","client","soft",
            "ware","hard","dream","cosmo","planet","netpun","pluton","moon","sun","earth","mars",
            "volt","amper","kilo","mega","byte","bit","word","file","giga","milli","mini","nano",
            "buck","money","sum","plus","minus","multi","div","per","into","later","quick","finish",
            "write","code","hex","octal","dec","inc","move","push","pop","int","float","double","bool",
            "string","char","list","var","able","dis","lock","asm","see","cat","call","mask","ret",
            "out","space","wire","cur","rent","while","loop","each",
            "one","two","free","four","five","six","seven","eight","nine","ten","zero",
            "high","low","many","small","big","too"
        };

        Random rnd = new Random();

        protected List<string> Word
        {
            get
            {
                int n = rnd.Next(2, 5);

                List<string> res = new List<string>();

                for (int i = 0; i < n; i++) res.Add(morphems[rnd.Next(morphems.Length)]);

                return res;
            }
        }

        protected List<List<string>> Sentence
        {
            get
            {
                int n = rnd.Next(2, 5);

                List<List<string>> res = new List<List<string>>();

                for (int i = 0; i < n; i++) res.Add(Word);

                return res;
            }
        }

        protected List<string> Rithma(List<string> word)
        {
            List<string> res = new List<string>();

            foreach (string w in word)
                if (rnd.Next(10) < 8) res.Add(w);
                else res.Add(morphems[rnd.Next(morphems.Length)]);

            return res;
        }

        protected List<List<string>> Rithma(List<List<string>> sent)
        {
            List<List<string>> res = new List<List<string>>();

            foreach (List<string> w in sent) res.Add(Rithma(w));

            return res;
        }

        protected List<List<List<string>>> Kuplet_1
        {
            get {
                List<List<List<string>>> res = new List<List<List<string>>>();

                List<List<string>> sent1 = Sentence;

                List<List<string>> sent2 = Sentence;

                List<List<string>> sent3 = Rithma(sent1);

                List<List<string>> sent4 = Rithma(sent2);

                res.Add(sent1); res.Add(sent2); res.Add(sent3); res.Add(sent4);

                return res;
            }
        }

        protected List<List<List<string>>> Kuplet_2
        {
            get
            {
                List<List<List<string>>> res = new List<List<List<string>>>();

                List<List<string>> sent1 = Sentence;

                List<List<string>> sent2 = Rithma(sent1);

                List<List<string>> sent3 = Sentence;

                List<List<string>> sent4 = Rithma(sent3);

                res.Add(sent1); res.Add(sent2); res.Add(sent3); res.Add(sent4);

                return res;
            }
        }

        protected List<List<List<string>>> Kuplet_3
        {
            get
            {
                List<List<List<string>>> res = new List<List<List<string>>>();

                List<List<string>> sent1 = Sentence;

                List<List<string>> sent2 = Rithma(sent1);

                List<List<string>> sent3 = Rithma(sent1);

                List<List<string>> sent4 = Rithma(sent1);

                res.Add(sent1); res.Add(sent2); res.Add(sent3); res.Add(sent4);

                return res;
            }
        }

        protected List<List<List<string>>> Kuplet_4
        {
            get
            {
                List<List<List<string>>> res = new List<List<List<string>>>();

                List<List<string>> sent1 = Sentence;

                List<List<string>> sent2 = Sentence;

                List<List<string>> sent3 = Rithma(sent2);

                List<List<string>> sent4 = Rithma(sent1);

                res.Add(sent1); res.Add(sent2); res.Add(sent3); res.Add(sent4);

                return res;
            }
        }


        protected string WordText(List<string> word)
        {
            string res = ""; foreach (string w in word) res += w; return res;
        }

        protected string ToText(List<List<string>> sent)
        {
            string res = ""; foreach (List<string> w in sent) res += WordText(w) + " ";

            return res;
        }

        protected string ToText(List<List<List<string>>> kuplet)
        {
            string res = ""; foreach (List<List<string>> s in kuplet) res += ToText(s) + ". ";// "\r\n";
            return res;
        }

        public string Poem
        {
            get
            {
                int n = rnd.Next(3, 10);

                string res = "";

                for (int i = 0; i < n; i++)
                {
                    int k = rnd.Next(4);

                    switch(k)
                    {
                        case 0: res += ToText(Kuplet_1); break;
                        case 1: res += ToText(Kuplet_2); break;
                        case 2: res += ToText(Kuplet_3); break;
                        case 3: res += ToText(Kuplet_4); break;
                    }
                }

                return res;
            }
        }

        protected bool StopFlag = false;
        public bool IsPlaying = false;

        public async Task Play()
        {
            StopFlag = false;
            IsPlaying = true;
            try
            {
                SpeechSynthesizer syn = new SpeechSynthesizer();
                syn.Rate = 4;
                syn.Volume = 99;
                syn.SelectVoiceByHints(VoiceGender.NotSet, VoiceAge.NotSet, 0, new System.Globalization.CultureInfo("en-US"));

                while (!StopFlag)
                {
                    syn.Speak(Poem);
                }
            }
            catch { }
            IsPlaying = false;
        }

        public void Stop() { StopFlag = true; }
    }
}
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

МОЖНО СКАЧАТЬ БЕСПЛАТНЫЙ MP3 ПЛЕЕР С ГЕНЕРАТОРОМ РЭПА

Собрал дистрибутив Discord Radio Player 1.2.1, с галочкой включения речитатива снизу, играющего по вышеприведённому исходнику. Заходит классно поверх launge и chillout, неплохо под брейкбит, также должно нормально звучать со всеми стилями electro без слов - слова на лету придумывает компьютер. Завтра планирую записать несколько часов звучания ЛаунжРэп-а, спокойного репчика, среднего между трансом и речитативом, идеального для работы, а пока выкладываю ссылку на скомпилированный рэп-генератор в mp3 плеере!

Скачать
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

МОЯ ИГРА В КОМПОЗИТОРА: MP3 ПЛЕЕР ПИШЕТ МУЗЫКУ НА ЛЕТУ

Я не играю ни на одном инструменте. Хотя да, раньше играл, на клавиатуре. В DOOM-2, Descent, WarCraft-2, Duna. И вот, я решил вспомнить свою старую задумку сделать генератор музыки, чтобы по нажатию кнопочки компьютер сам синтезировал мелодии в цикле, и не надо было геморроиться со скачиваниями и авторскими правами на музыку.

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

Итак, папка InstrumentSound с несколькими десятками инструментов и ритм-инструментов в виде фрагментов mp3. Инструменты - самые экзотические, ничего из унс-унс и примитива. Даю пару определений.

Ритм-канал это циклическое звучание случайного ритм-инструмента. В композиции случайное число от 1 до 2 ритм-каналов.

Канал это циклическое повторяющееся звучание 4 инструментов по очереди. В композиции случайное число от 2 до 4 каналов.

Композиция это ритм-каналы и каналы, то есть последовательности имён mp3 файлов, список массивов имён инструментов с суффиксом mp3.

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

Интеллектуальный генератор случайных чисел Random сам подбирает псевдо-случайным образом псевдо-оптимальные инструменты, а пользователю остаётся лишь слушать упражнения искусственного интеллекта в сочинении музыки и игре на экзотических инструментах. А может быть - отбирать шедевры для выкладывания в интернет на скачивания!

Эти идеи демонстрирует следующий фрагмент исходного кода на языке C#.

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MachineSpeechLibrary
{
    public abstract class Music
    {
        string[] RithmInstruments = new string[] {
            "банджо-ритм","деревяшки-ритм","испанский-ритм","лёгкий-ритм","метал-ритм",
            "металлический-барабан-ритм","панк-ритм","ритмичное-встряхивание",
            "тамбурин-ритм","тарелки-ритм","эхо-барабанов-ритм","ложки-ритм"
        };

        string[] Instruments = new string[]
        {
            "арфа","банджо","большая-тарелка","большой-гонг","бонго","бубен","бубенцы","волынка",
            "гонг","деревяшки","дробь","игра-на-гитаре","испанская-гитара","карильон","ксилофон",
            "марш","нейлоновые-струны","никельодеон","тарелки","треугольник","трещотка",
            "удар-по-тарелке","флейта","фортепиано-низы","хомус","церковный-орган","электрогитара"
        };


        Random rnd = new Random();

        protected int SamplesNumber { get { return 4 * rnd.Next(1, 20); } }


        protected string[] RitmChannel(int count)
        {
            List<string> list = new List<string>();

            int n = rnd.Next(RithmInstruments.Length);

            for (int i = 0; i < count; i++) list.Add(RithmInstruments[n]+".mp3");

            return list.ToArray<string>();
        }

        protected string[] Channel(int count)
        {
            List<string> list = new List<string>();

            int ins0 = rnd.Next(Instruments.Length);

            int ins1 = rnd.Next(Instruments.Length);

            int ins2 = rnd.Next(Instruments.Length);

            int ins3 = rnd.Next(Instruments.Length);

            for (int i = 0; i < count; i++)
                switch (i % 4)
                {
                    case 0: list.Add(Instruments[ins0]+".mp3"); break;
                    case 1: list.Add(Instruments[ins1]+".mp3"); break;
                    case 2: list.Add(Instruments[ins2]+".mp3"); break;
                    case 3: list.Add(Instruments[ins3]+".mp3"); break;
                }

            return list.ToArray<string>();
        }

        public List<string[]> Channels
        {
            get
            {
                int count = SamplesNumber;

                int r = rnd.Next(1, 2);

                int i = rnd.Next(2, 4);

                List<string[]> melody = new List<string[]>();

                for (int j = 0; j < r; j++) melody.Add(RitmChannel(count));

                for (int j = 0; j < i; j++) melody.Add(Channel(count));

                return melody;
            }
        }

        protected bool StopFlag = false;

        public abstract Task PlayMp3FileAsync(string folder, string mp3file);

        protected string FolderPath = ".\\";

        public void SetInstrumentsFolder(string FolderPath) { this.FolderPath = FolderPath; }

        public bool IsPlaying = false;

        protected async Task PlayChannel(string[] instruments)
        {
            try
            {
                for (int i = 0; i < instruments.Length && !StopFlag; i++)
                {
                    await Task.Delay(100);
                    await PlayMp3FileAsync(FolderPath, instruments[i]);
                }
            }
            catch { }
        }


        public async Task Play()
        {
            StopFlag = false;
            if (IsPlaying) return; else IsPlaying = true;

            while (!StopFlag)
                try
                {
                    List<string[]> melody = Channels;

                    List<Task> list = new List<Task>();

                    for (int j = 0; j < melody.Count && !StopFlag; j++)
                    {

                        list.Add(Task.Run(() => PlayChannel(melody[j])));

                        await Task.Delay(500);
                    }

                    Task.WaitAll(list.ToArray<Task>());
                }
                catch { }

            IsPlaying = false;
        }

        public void Stop() { StopFlag = true; }

    }
}

    public class MusicPlayer : Music
    {
        public override Task PlayMp3FileAsync(string folder, string file)
        {
            WMPLib.WindowsMediaPlayer player = new WMPLib.WindowsMediaPlayer();

            player.URL = Path.Combine(folder, file);
            try { player.controls.play(); } catch { }

            return Task.Run(async () =>
            {
                await Task.Delay(1500);

                while (
                    player.playState == WMPPlayState.wmppsBuffering ||
                    player.playState == WMPPlayState.wmppsPaused ||
                    player.playState == WMPPlayState.wmppsPlaying) await Task.Delay(75);
            });
        }

    }
СКАЧАТЬ БЕСПЛАТНЫЙ DISCORD RADIO PLAYER 1.2.2 С СИНТЕЗОМ МУЗЫЧКИ И РЭПА

Image
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

РЭП-КОНФИГ И МЮЗИК-КОНФИГ

В этой версии Discord Radio Player 1.2.3 я добавил конструктор музыки, настраиваемый пользователем, и конструктор рэпа с задаваемым словарным запасом. Качайте отсюда, на сегодня это самый крутой mp3 плеер!

Image

Темы курсовых работ по топику статьи:

- Сравнительный анализ графики, качества и возможностей современных mp3 плееров

- Сравнительный анализ сложности исходного кода генерации рэп-композиций на языках C#, Lisp и Prolog

- Полноценный генератор рэп-композиций на языке Esperanto

- Полноценный генератор рэп-композиций на языке Lojban

- Общие корни языков в генерации интернационального рэпа под музыку

Что делать, если плеер генерирует рэпчик на ломанном английском, а хочется - на ложбане или эсперанто? Или на французском, немецком, испанском, итальянском, словацком? Для этого есть файл RapConfig.txt, в котором можно заменить морфемы и корни, словообразующие элементы, на аналогичные из требуемого языка. И, если надо, поправить локаль en-US на нужную. После перезапуска плеера он уже будет синтезировать рэп на новом языке!

Что делать, если надоел каунтри-классический лаунж и хочется дип-хауса или электро-дэнса? Скачать mp3 файлы инструментов в папку и поправить файл MusicConfig.txt После перезапуска плеера он начнёт генерировать музыку на новых инструментах, из папки, указанной в поле InstrumentSound!

MusicConfig.txt

Code: Select all

{
  "InstrumentFolder": "InstrumentFolder",
  "RithmInstruments": [
    "банджо-ритм",
    "деревяшки-ритм",
    "испанский-ритм",
    "лёгкий-ритм",
    "метал-ритм",
    "металлический-барабан-ритм",
    "панк-ритм",
    "ритмичное-встряхивание",
    "тамбурин-ритм",
    "тарелки-ритм",
    "эхо-барабанов-ритм",
    "ложки-ритм"
  ],
  "Instruments": [
    "арфа",
    "банджо",
    "большая-тарелка",
    "большой-гонг",
    "бонго",
    "бубен",
    "бубенцы",
    "волынка",
    "гонг",
    "деревяшки",
    "дробь",
    "игра-на-гитаре",
    "испанская-гитара",
    "карильон",
    "ксилофон",
    "марш",
    "нейлоновые-струны",
    "никельодеон",
    "тарелки",
    "треугольник",
    "трещотка",
    "удар-по-тарелке",
    "флейта",
    "фортепиано-низы",
    "хомус",
    "церковный-орган",
    "электрогитара"
  ]
}
RapConfig.txt

Code: Select all

{
  "locale": "en-US",
  "morphems": [
    "a",
    "the",
    "is",
    "was",
    "yes",
    "no",
    "are",
    "you",
    "we",
    "he",
    "she",
    "it",
    "as",
    "me",
    "iam",
    "low",
    "bis",
    "ness",
    "less",
    "near",
    "far",
    "in",
    "on",
    "under",
    "before",
    "late",
    "under",
    "after",
    "of",
    "off",
    "po",
    "pi",
    "pu",
    "py",
    "pe",
    "to",
    "ti",
    "tu",
    "te",
    "ro",
    "ru",
    "ri",
    "re",
    "wo",
    "wi",
    "wu",
    "qo",
    "qi",
    "qu",
    "qe",
    "pa",
    "ta",
    "ra",
    "wa",
    "qa",
    "sa",
    "da",
    "fa",
    "ga",
    "ha",
    "ja",
    "ka",
    "la",
    "lo",
    "li",
    "lu",
    "le",
    "ly",
    "le",
    "ko",
    "ki",
    "ku",
    "ky",
    "ke",
    "jo",
    "ji",
    "ju",
    "jy",
    "je",
    "ho",
    "hi",
    "hu",
    "hy",
    "he",
    "go",
    "gi",
    "gu",
    "gy",
    "ge",
    "fo",
    "fi",
    "fu",
    "fy",
    "fe",
    "do",
    "di",
    "du",
    "dy",
    "de",
    "so",
    "si",
    "su",
    "sy",
    "se",
    "sistem",
    "zo",
    "za",
    "zi",
    "zu",
    "zy",
    "ze",
    "xo",
    "xi",
    "xu",
    "xy",
    "xe",
    "xa",
    "co",
    "ci",
    "cu",
    "cy",
    "ce",
    "ca",
    "vo",
    "vi",
    "vu",
    "vy",
    "va",
    "bo",
    "bi",
    "bu",
    "by",
    "be",
    "ba",
    "no",
    "ni",
    "nu",
    "ny",
    "ne",
    "na",
    "mo",
    "mi",
    "my",
    "ma",
    "mom",
    "child",
    "guy",
    "girl",
    "father",
    "mother",
    "friend",
    "boss",
    "sex",
    "fuck",
    "cock",
    "dick",
    "pussy",
    "love",
    "feel",
    "like",
    "seem",
    "exit",
    "fail",
    "quit",
    "enter",
    "login",
    "run",
    "press",
    "start",
    "stop",
    "system",
    "comp",
    "break",
    "case",
    "switch",
    "net",
    "inet",
    "key",
    "man",
    "wooman",
    "all",
    "wall",
    "walk",
    "go",
    "inter",
    "play",
    "kiss",
    "for",
    "goto",
    "mail",
    "chat",
    "client",
    "soft",
    "ware",
    "hard",
    "dream",
    "cosmo",
    "planet",
    "netpun",
    "pluton",
    "moon",
    "sun",
    "earth",
    "mars",
    "volt",
    "amper",
    "kilo",
    "mega",
    "byte",
    "bit",
    "word",
    "file",
    "giga",
    "milli",
    "mini",
    "nano",
    "buck",
    "money",
    "sum",
    "plus",
    "minus",
    "multi",
    "div",
    "per",
    "into",
    "later",
    "quick",
    "finish",
    "write",
    "code",
    "hex",
    "octal",
    "dec",
    "inc",
    "move",
    "push",
    "pop",
    "int",
    "float",
    "double",
    "bool",
    "string",
    "char",
    "list",
    "var",
    "able",
    "dis",
    "lock",
    "asm",
    "see",
    "cat",
    "call",
    "mask",
    "ret",
    "out",
    "space",
    "wire",
    "cur",
    "rent",
    "while",
    "loop",
    "each",
    "one",
    "two",
    "free",
    "four",
    "five",
    "six",
    "seven",
    "eight",
    "nine",
    "ten",
    "zero",
    "high",
    "low",
    "many",
    "small",
    "big",
    "too"
  ]
}
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

ЧИСТЫЙ RapConfig.txt для SImplified English под DiscordRadio 1.2.3
Скрытый текст
{
"locale": "en-US",
"morphems": [
"zero",
"one",
"two",
"free",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"ten",
"utter",
"banana",
"sad",
"run",
"bundle",
"bovine",
"chalk",
"bucket",
"bulb",
"balcony",
"blade",
"future",
"beyond",
"defend",
"amphibian",
"language",
"great",
"grow",
"bank",
"suffice",
"force",
"big",
"arch",
"bar",
"mark",
"out",
"emphasize",
"replace",
"bite",
"button",
"barley",
"Malay-Indonesian",
"foolish",
"North",
"crew",
"Bengali",
"transfer",
"son",
"north",
"brain",
"abdomen",
"tragedy",
"carry",
"unordered",
"bead",
"bee",
"whip",
"obliged",
"ill",
"military",
"Indonesian",
"insure",
"become",
"beer",
"arm",
"certain",
"ice",
"wall",
"white",
"glass",
"blue",
"block",
"boat",
"short",
"ball",
"bone",
"bottle",
"sheet",
"wave",
"enemy",
"hail",
"Brazilian",
"ready",
"predicate",
"breeze",
"office",
"British",
"predicate",
"predicate",
"predicate",
"predicate",
"predicate",
"brother",
"word",
"some",
"Buddhist",
"cloth",
"fog",
"pound",
"brown",
"brush",
"embarrassed",
"actually",
"now",
"apparatus",
"hour",
"walk",
"often",
"chocolate",
"shell",
"vanish",
"idle",
"farm",
"exchange",
"window",
"space",
"shovel",
"sand",
"gut",
"cart",
"intense",
"turn",
"chart",
"rain",
"discuss",
"shove",
"look",
"authority",
"kill",
"shallow",
"in",
"percent",
"in",
"launcher",
"community",
"era",
"vary",
"holy",
"heir",
"morning",
"expert",
"god",
"initiate",
"fiction",
"flaw",
"wedge",
"confusing",
"blood",
"cyan",
"food",
"knee",
"hydrogen",
"infant",
"gland",
"awake",
"repair",
"explain",
"wild",
"moist",
"learn",
"thread",
"dimension",
"infinite",
"kiss",
"oak",
"lion",
"wrinkle",
"insect",
"thin",
"emotion",
"interesting",
"sexual",
"paint",
"tongs",
"bird",
"test",
"lose",
"cheese",
"write",
"smile",
"system",
"eat",
"young",
"history",
"season",
"louse",
"strange",
"rubber",
"coffee",
"quality",
"bed",
"peril",
"ridicule",
"ashamed",
"key",
"scale",
"related",
"grateful",
"school",
"conifer",
"loud",
"long",
"without",
"mossy",
"early",
"polite",
"leave",
"loop",
"mathematics",
"small",
"mountain",
"structure",
"name",
"laugh",
"member",
"moan",
"norm",
"neck",
"reward",
"orderly",
"new",
"lead",
"beneath",
"tanru",
"initiative",
"unspecif",
"cessative",
"soak",
"deep",
"pain",
"get",
"upon",
"climb",
"request",
"pungent",
"radio",
"front",
"shirt",
"harvest",
"bear",
"fairy",
"green",
"bridge",
"summer",
"autumn",
"tide",
"lip",
"tax",
"petroleum",
"shadow",
"teach",
"round",
"book",
"full",
"possible",
"humble",
"millet",
"random",
"affair",
"produce",
"let",
"worm",
"pure",
"express",
"shoe",
"chest",
"choose",
"something",
"all",
"drawer",
"object",
"Taoist",
"knife",
"sack",
"fight",
"drum",
"hang",
"answer",
"animal",
"smoke",
"pressure",
"dance",
"projectile",
"island",
"curse",
"road",
"argue",
"far",
"audacity",
"hit",
"pocket",
"wear",
"destroy",
"ribbon",
"duck",
"data",
"finger",
"owe",
"gallon",
"candela",
"bean",
"tooth",
"dense",
"wait",
"dirt",
"heap",
"shake",
"date",
"interrupt",
"electric",
"local",
"regular",
"quotient",
"cloud",
"fate",
"building",
"nail",
"dear",
"radiate",
"drop",
"low",
"water",
"full",
"desire",
"ring",
"know",
"you",
"daytime",
"German",
"drama",
"correct",
"other",
"roof",
"same",
"bridi",
"logarithm",
"excess",
"opposite",
"give",
"freeze",
"anguish",
"equal",
"winter",
"elder",
"Antarctican",
"discover",
"ordinary",
"fire",
"sail",
"aunt",
"function",
"alien",
"end",
"factory",
"prevent",
"translate",
"annoy",
"oppose",
"fall",
"direction",
"develop",
"event",
"fact",
"reverse",
"distribute",
"boil",
"divide",
"angry",
"crazy",
"crack",
"sew",
"cent",
"lung",
"fertile",
"waste",
"female",
"fig",
"Palestinian",
"fish",
"invent",
"law",
"flute",
"flow",
"fail",
"face",
"field",
"foam",
"telephone",
"fork",
"French",
"react",
"forgive",
"differ",
"African",
"easy",
"fraction",
"offer",
"frown",
"copy",
"float",
"luck",
"rotten",
"responsible",
"cover",
"article",
"modify",
"high",
"throat",
"closed",
"broad",
"sense",
"gonad",
"anus",
"organize",
"gas",
"above",
"rail",
"do",
"steel",
"root",
"Argentinian",
"hook",
"dog",
"grammar",
"guide",
"camp",
"group",
"root",
"hot",
"happy",
"copulate",
"English",
"glove",
"unit",
"gram",
"rod",
"grease",
"frame",
"gray",
"fruit",
"public",
"country",
"industry",
"work",
"jointly",
"roll",
"goose",
"attack",
"grain",
"scrape",
"illumine",
"restaurant",
"cubit",
"womb",
"melon",
"tanru",
"brake",
"adorn",
"rocket",
"result",
"starch",
"cockroach",
"foot",
"war",
"bell",
"shoulder",
"collide",
"diplomat",
"account",
"suburb",
"show",
"narrow",
"passport",
"captain",
"rule",
"bomb",
"berry",
"born",
"borrow",
"between",
"firm",
"decide",
"decrease",
"price",
"money",
"jelly",
"tanru",
"polity",
"week",
"Jehovist",
"truth",
"burn",
"gem",
"shock",
"axle",
"army",
"earn",
"chase",
"Algerian",
"needle",
"jet",
"true",
"claw",
"angle",
"grasp",
"knot",
"gene",
"pride",
"guitar",
"near",
"job",
"stir",
"basis",
"intuit",
"socialize",
"liquor",
"alkali",
"jealous",
"branch",
"understand",
"limit",
"shears",
"win",
"vaccine",
"metal",
"immerse",
"clean",
"well",
"opine",
"innate",
"chicken",
"tip",
"horn",
"juice",
"false",
"control",
"weave",
"compete",
"gather",
"shoal",
"add",
"live",
"tanru",
"union",
"in",
"in",
"Jordanian",
"joined",
"tanru",
"table",
"address",
"sentence",
"spider",
"cook",
"net",
"attentive",
"Chinese",
"clock",
"serious",
"weight",
"germ",
"severe",
"species",
"clumsy",
"view",
"property",
"cup",
"camera",
"Canadian",
"cough",
"company",
"warn",
"shelf",
"able",
"dig",
"feces",
"open",
"chaotic",
"hunt",
"column",
"committee",
"common",
"goat",
"count",
"dim",
"calculate",
"eye",
"healthy",
"with",
"quantum",
"conjunction",
"compare",
"car",
"card",
"costly",
"collar",
"journal",
"cut",
"capture",
"start",
"end",
"pity",
"end",
"play",
"kelvin",
"cancer",
"outer",
"hair",
"ear",
"South",
"cavity",
"cushion",
"oxygen",
"sharp",
"Pakistani",
"street",
"weep",
"come",
"quantity",
"class",
"clear",
"chlorine",
"clay",
"screw",
"loose",
"cabbage",
"corner",
"coal",
"comb",
"cone",
"edge",
"bent",
"cork",
"coat",
"acre",
"source",
"represent",
"recur",
"believe",
"crystal",
"reason",
"cry",
"intersect",
"cream",
"curve",
"intersection",
"cube",
"curious",
"comfort",
"delicious",
"culture",
"room",
"camel",
"mineral",
"empty",
"square",
"take",
"bitter",
"range",
"cruel",
"wolf",
"pull",
"rely",
"milk",
"lift",
"probable",
"wax",
"lake",
"adjacent",
"protein",
"flag",
"basket",
"analyze",
"sheep",
"can",
"balance",
"family",
"art",
"fasten",
"brass",
"Latin",
"lotus",
"lazy",
"the",
"take",
"lens",
"cold",
"late",
"letteral",
"experience",
"Libyan",
"precede",
"experience",
"religion",
"swim",
"lightning",
"line",
"chain",
"lightweight",
"story",
"list",
"liter",
"liquid",
"travel",
"liver",
"fuel",
"the",
"logic",
"Lojbanic",
"floor",
"fox",
"Lebanese",
"affix",
"wash",
"bare",
"lunar",
"condense",
"derogative",
"mammal",
"manual",
"mature",
"magic",
"magnet",
"temple",
"mother",
"wonder",
"uniform",
"dark",
"reference",
"satisfy",
"ant",
"cap",
"cotton",
"fit",
"shelter",
"vehicle",
"morals",
"mercury",
"material",
"hemp",
"mash",
"slow",
"month",
"mat",
"linen",
"butter",
"motor",
"oats",
"wheat",
"brow",
"cardinal",
"MEX",
"beautiful",
"Malaysian",
"mind",
"sister",
"minute",
"American",
"measure",
"Mexican",
"me",
"middle",
"code",
"doctor",
"mild",
"command",
"machine",
"mile",
"reflect",
"same",
"secret",
"deer",
"famous",
"Egyptian",
"meter",
"mixture",
"side",
"cat",
"less",
"mold",
"satellite",
"too",
"space",
"ordinal",
"point",
"mouth",
"mill",
"mole",
"remember",
"Moroccan",
"pattern",
"dead",
"friction",
"rye",
"mail",
"hammer",
"point-event",
"immaterial",
"wood",
"motive",
"complete",
"universe",
"example",
"glimmering",
"curtain",
"Islamic",
"much",
"move",
"museum",
"bridi",
"scalar",
"problem",
"male",
"wing",
"number",
"bread",
"year",
"difficult",
"boy",
"man",
"nut",
"orange",
"deny",
"nation",
"neon",
"canal",
"nose",
"energy",
"fond",
"in",
"amount",
"necessitate",
"night",
"nickel",
"furniture",
"citrus",
"woman",
"nerve",
"need",
"knit",
"girl",
"scalar",
"noble",
"message",
"event",
"can",
"magenta",
"promise",
"rural",
"neutral",
"news",
"hope",
"part",
"pass",
"judge",
"evil",
"pants",
"tray",
"plate",
"pump",
"odor",
"punctuate",
"sponge",
"park",
"slice",
"peace",
"parallel",
"protest",
"offspring",
"page",
"ratio",
"robe",
"father",
"potato",
"pot",
"figurative",
"paper",
"yellow",
"poem",
"pen",
"touch",
"friend",
"meet",
"think",
"pear",
"paste",
"leaf",
"decimal",
"cross",
"pin",
"beg",
"ticket",
"multiply",
"crust",
"use",
"feather",
"urine",
"poor",
"prisoner",
"penis",
"comment",
"pencil",
"level",
"drink",
"piano",
"picture",
"plump",
"plan",
"pay",
"pubic",
"planet",
"leap",
"apple",
"plane",
"plow",
"complicated",
"pleasant",
"route",
"fold",
"Polynesian",
"Japanese",
"possess",
"break",
"sequence",
"Portuguese",
"profit",
"love",
"perfect",
"spread",
"person",
"question",
"wise",
"print",
"right",
"prose",
"process",
"elastic",
"spirit",
"can",
"process",
"dust",
"police",
"pulley",
"put",
"swelling",
"past",
"garden",
"powder",
"sane",
"rabbit",
"radian",
"affix",
"across",
"Iraqi",
"trouble",
"delicate",
"principal",
"retain",
"yield",
"organ",
"continue",
"myth",
"bronze",
"soft",
"irony",
"repeat",
"natural",
"rat",
"atom",
"tail",
"meat",
"human",
"throw",
"survive",
"reptile",
"rich",
"disgusting",
"silver",
"rhythm",
"rhyme",
"drain",
"restrain",
"cause",
"greet",
"rare",
"parent",
"river",
"rice",
"heart",
"rite",
"avoid",
"each",
"quantified",
"rock",
"chrome",
"European",
"procreate",
"thick",
"rose",
"weak",
"rough",
"melt",
"dissolve",
"dollar",
"Russian",
"artifact",
"provide",
"cabin",
"match",
"decimal",
"Saudi",
"suck",
"slide",
"sugar",
"celebrate",
"slope",
"salad",
"cassava",
"simple",
"sound",
"sing",
"conscious",
"stand",
"meal",
"sauce",
"umbrella",
"necessary",
"support",
"spiral",
"harmonious",
"science",
"exact",
"stroke",
"noise",
"operate",
"surface",
"cell",
"serve",
"Semitic",
"sneeze",
"doubt",
"layer",
"dream",
"apart",
"stairs",
"insert",
"self",
"fly",
"punish",
"sofa",
"dive",
"concept",
"whistle",
"coin",
"idea",
"help",
"cigar",
"silk",
"salt",
"seem",
"similar",
"mutual",
"snake",
"esteem",
"sine",
"sign",
"sleep",
"straight",
"Syrian",
"seek",
"cease",
"cite",
"private",
"skirt",
"computer",
"pelt",
"color",
"describe",
"ski",
"cinema",
"cord",
"Scottish",
"groove",
"familiar",
"syllable",
"acid",
"cylinder",
"sour",
"plastic",
"solid",
"oscillate",
"sulfur",
"Slavic",
"muscle",
"onion",
"mouse",
"guess",
"quiet",
"monkey",
"sock",
"spoon",
"meaning",
"succeed",
"south",
"second",
"snow",
"sticky",
"sandwich",
"secure",
"accidental",
"almost",
"most",
"many",
"several",
"few",
"soya",
"sodium",
"soda",
"Soviet",
"gold",
"solar",
"sow",
"soldier",
"store",
"sorghum",
"egg",
"surprise",
"polish",
"Spanish",
"plant",
"married",
"piece",
"hospital",
"broken",
"explode",
"reply",
"spit",
"vertical",
"scratch",
"Australian",
"pertain",
"grass",
"err",
"Sanskrit",
"assume",
"surround",
"honest",
"vegetable",
"ceramic",
"remain",
"stalk",
"step",
"soup",
"talent",
"frustration",
"specific",
"head",
"lock",
"steradian",
"west",
"suggest",
"adjust",
"chair",
"constant",
"east",
"structure",
"site",
"at",
"unspecif",
"abstract",
"dry",
"hoof",
"sudden",
"sum",
"smell",
"argument",
"garlic",
"wool",
"relax",
"fast",
"that",
"carbon",
"trumpet",
"method",
"study",
"snug",
"challenge",
"tomato",
"thumb",
"cousin",
"board",
"tongue",
"tangent",
"tobacco",
"phrase",
"pan",
"box",
"tile",
"embryo",
"star",
"tar",
"shape",
"behave",
"thirst",
"tired",
"breast",
"talk",
"garment",
"custom",
"city",
"station",
"tea",
"stretch",
"deceive",
"read",
"time",
"detail",
"weather",
"situation",
"label",
"time",
"exponential",
"texture",
"earth",
"fear",
"this",
"perform",
"kick",
"heavy",
"obey",
"tin",
"stiff",
"hear",
"iron",
"tiger",
"fill",
"sweet",
"television",
"daughter",
"polar",
"oven",
"butterfly",
"tone",
"short",
"twist",
"superlative",
"nitrogen",
"taut",
"train",
"tree",
"attract",
"behind",
"try",
"strong",
"sky",
"seasoning",
"seed",
"stage",
"that",
"tube",
"agree",
"tulip",
"land",
"sibling",
"copper",
"swallow",
"poke",
"leg",
"govern",
"tool",
"territory",
"there",
"air",
"important",
"word",
"value",
"vomit",
"environment",
"evening",
"wine",
"contain",
"breathe",
"whole",
"sell",
"revenge",
"spring",
"child",
"here",
"vagina",
"video",
"virus",
"fresh",
"excrete",
"viscous",
"remove",
"poison",
"airplane",
"deputy",
"brave",
"see",
"irregular",
"guest",
"permanent",
"vulva",
"violent",
"alternation",
"powerful",
"flight",
"voice",
"door",
"lever",
"record",
"reclining",
"miscellaneous",
"virtue",
"taste",
"yonder",
"Ukrainian",
"dwell",
"half",
"body",
"hunger",
"reed",
"funny",
"use",
"levity",
"alcohol",
"panic",
"good",
"ampere",
"sea",
"hand",
"nervous",
"imaginary",
"elephant",
"weapon",
"pig",
"stubborn",
"donkey",
"sweat",
"letter",
"Asiatic",
"hate",
"Hebrew",
"jaw",
"black",
"Greek",
"kind",
"regret",
"Hindi",
"ink",
"horse",
"wheel",
"Hispanic",
"bad",
"influence",
"hotel",
"Arabic",
"injure",
"Christian",
"buckwheat",
"turkey",
"flower",
"return",
"chemical",
"red",
"Urdu",
"assert",
"smooth",
"state",
"superfective",
"favorable",
"gymnast",
"grind",
"approve",
"market",
"buttock",
"temporary",
"exist",
"soap",
"bay",
"make",
"pedestal",
"nest",
"amusing",
"whole",
"outward",
"crime",
"increase",
"observe",
"music",
"nonexistent",
"free",
"zinc",
"purple",
"invest",
"more",
"automatic",
"tangential",
"inward",
"activity",
"act",
"maize",
"guilt",
"left",
"interfere",
"sit",
"at"
]
}
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

Пример поэмы:

outwardprobableshake pantstheinterfere fuelsmilefloor wildrestaurantsweetwise
outwardprobableshake hottheinterfere fuelsmilefloor wildrestaurantsweetwise
crazyprobableshake pantstheinterfere fuelsmilefloor wildrestaurantstepwise
outwardprobabletip pantstheinterfere fuelballattract viscousrestaurantEgyptianwise
viewquantity stalksibling
throwdoctor frontsibling
blockquantity stalksibling
viewquantity stalkLojbanic
Hindihunt foxtangent
Hindihunt foxtangent
Hindiscratch foxshoulder
Hindihunt foxtangent
exponentialcoinreversecan skirtscrewaccountsibling
behindcoincottoncan skirtscrewaccountsibling
exponentialcoinreversecan condensescrewaccountsibling
exponentialcoinreversecan skirtscrewaccountsibling
appleteachwhole cessativeremove kickgrasspredicatewalk
temporarygrindwithchallenge cushionUrdu jettax
spiritteachwhole cessativemarket relatedgrassglandmixture
scalarcitruswithchallenge cushionUrdu jettax
riverfoxerr commandsensetwo
riverfoxerr commandsensesmell
riversailerr tenelephanttwo
riverfoxerr commanduniformtwo
polityforkcompany recordcut buckwheatrecurhairsmell flowcustomcite
polityforkcompany recordcut buckwheatrecurhairsmell flowcustomcite
polityforkcompany recordcut buckwheatnighthairsmell flowcustomcite
polityforkcompany recordcut buckwheatrecurhairchild flowcustomcite


passportarmwhole lucktaste soapguesspromiserange
passportarmwhole shovetaste soapguesspromiserange
videoirregular lionliquidtobacco odorAlgerianinfluence
videoirregular lionliquidtobacco odorAlgerianinfluence
feathermoistgold falltemplecopper costlytanruresponsible elephantactivityhangsalt
vaccinemoistgold moisttemplecopper fertiletanruresponsible removeactivityhangsalt
feathermoistSemitic falltemplecopper costlytanruprisoner elephantactivityhangsalt
balconymoistgold falltemplecopper costlyfriendresponsible abstractactivityhangsalt
endartifact balconyArgentinianwrite fillnitrogenpossiblespirit
endartifact balconyArgentinianwrite pearnitrogenpossiblespirit
signartifact balconyfallwrite fillnitrogenpossiblespirit
endartifact balconyArgentinianwrite fillmilitarypossiblespirit


diplomatrule complicatedsurprisestiff
articlerule complicatedaddbasket
putcut necessitateeventwhipbitter actuallycousinurine reptilecommentnail
putvalue necessitateamperewhipbitter actuallycousinunit reptilecommentnail
gramtube fondside sensefearamusingmale
captureneed faildoctormaterial nonexistentjawaxlelearn smokecoldcompetescience
gramnitrogen fondside sensefearamusingconstant
captureanswer failsoapmaterial nonexistentjawaxlecommon smokecoldcompetescience
magnetjoinedpredicatepoint-event discussleavesurvive infinitewall pearresult
carryseveral addresscoffeeofficeshort initiatesoldieralkalipenis paynerve
magnetjoinedearpoint-event discussleavesurvive assumewall pearresult
carryseveral addresscoffeeofficeshort initiatesoldieralkalipenis paynerve
privatesaladlunar deadcottontrain
privatesaladforgive plancottonwing
point-eventsaladlunar deadcottontrain
privatesaladlunar behavegrainlever
roofroottalentmiscellaneous insertdifferpianodrawer liftwith graspnonexistentsurprise
brushendinventclear survivebayquestion flightmoney weeknestcabinFrench
brushendinventclear survivebayquestion rainhot weeknestcabinsatisfy
roofrootlivermiscellaneous insertsmileamphibiandrawer liftwith graspletteralsurprise
plastictranslatetalentticket comparearmyseriousunion liveminuteenemyconstant
oppositetranslatetalentticket illumineyieldumbrellaunion liveheircomfortphrase
methodarticleluckstructure clayspace
methodarticleluckstructure clayspace
coldticketsupport stiffIslamicsum Palestiniantexturedoctorsteel
coldticketsupport stifffarmAsiatic Palestiniantexturedoctorsteel
machinearmy awakefarmaxle tablesuperfectivecaptain skirtthis
machinearmy awakefarmaxle factsuperfectivecaptain skirtthis


paygodpolite pasteSaudi arttruth
paygodpolite bookSaudi arttruth
roughliter eastbearmove
roughcolor eastbearmove
sofakicksomethingread laughopposite foolishpropertymatweak investweightconifer
fallkicksomethingread laughopposite organpropertymatweak investweightconifer
sofakickcavityread procreateopposite foolishpropertymatweak investweightBritish
liquorunspecifsomethingread laughopposite foolishpropertymatweak investweightpen
sentencecoatordinal directionargueendsexual prisonertiger accountstepofficesneeze
threadtemporarynose passporttaste pastslowactivitypoor governparkroom
threadtemporarynose passporttaste pastfingeractivitylanguage governparkjob
organcoatordinal directiontomatoendsexual prisonerorange accountstepofficeserve
politycork healthypotato cinemapressure
politycork healthypotato cinemapressure
huntbegsuperfectivecan anuslisthonest
huntbegsuperfectivethere anuslisthonest
travelfalse leapfastendirt acidsowgray Sovietmaturefingermat
travelfalse leapseemdirt lenswolfSanskrit SovietmaturefingerSpanish
reflectscalar crimeLibyancracksing
reflectscalar crimeLibyancracksing


fogcrystal influencedeer conceptteachhopeCanadian
fogcrystal influencedeer conceptteachhopeCanadian
lioneggplump oatsend radiateexplainglandBuddhist eggtalkovenweek
lioneggmyth oatsnitrogen chickenexplainschoolBuddhist eggtalkovenweek
pertainbay doeveningcotton
passportcapturehammer canprosediveteach
passportcapturehammer canstickydiveteach
pertaindeer doeveningliter
sisterbeadsnake oscillatebalanceaparttable sweatnightbrain balconycousinnail
workidea barbellwave predicatesmoothmilealmost
workmeal barwritewave predicatelightningmilealmost
sisterbeadsnake oscillatebalanceaparttable sweatnightbrain balconycousinnail
causeprovideweakbare promisetax weathervoice
causeashamedcornerbare promisetax privatevoice
twistweepearthglove manarguehailpunctuate
twistconsciousearthglove manargueturnpunctuate
planetAmericandelicate softvaccine costlycigarchocolatejournal
fogresultorganizeable personkickhumble
fogresultorganizeable swimsellhumble
needleAmericandelicate softvaccine costlycigarhoofjournal
guidefireregretnose meetprincipal factlake cleansevere
scratchtelevisionpredicatemanual interestingBuddhist warforgiveguilt
guidefireregretbronze ableprincipal factexcrete sleepsevere
cassavatelevisionbroadmanual outBuddhist warsexualguilt
judgepear glassbad tailkelvinmanygallon fullatautomaticsky
dearfarm asserthelpcarry predicatecommentnowreason patterncountryratioconjunction
dearfarm asserthelpcarry predicatecommentnowreason patterncountryratioconjunction
judgepear glassvegetable tailkelvinmanygallon amountatwombGerman
weekceasemodifyfold cleaneventthere
basisceasemodifychaotic cleaneventthere
weekconceptwholefold cleaneventthere
weekceasemodifyfold explainfullthere


passtoothdeer abdomenregretpocketdecimal
televisionmineralmarketquestion brainPakistaniapart
televisionmineralcloudterritory brainPakistaniapart
passtoothdeer abdomenregretpocketdecimal
drumamusing forkcloth shortinteresting
drumacre forkcloth shortinteresting
rhymeshoalcaptainpay liftdescribepityembryo jellymoneypolitegoose stubbornsaladopposite
rhymeshoalsuddenpay sockdreampityembryo jellymoneypolitegoose stubbornairopposite
spacepanshake Europeanoniondrink
spacepanshake Europeanoniondrink
spacetimeshake Europeangrowdrink
spacepanshake Europeanoniondrink
snakeballdefend historyinsure celebrateoakfive
snakeballdefend galloninsure celebrateoakfive
snakeballdefend curseinsure celebratetwofive
snakeballlaugh historyinsure celebrateoakfive
tooattentive weaklightweightprideturn fearsoft centtranslate
alienhonest messagedaytimesponge principalUkrainianjuice wavefertile
scratchattentive weaklightweightembarrassedturn religionsoft centtranslate
cancerhonest messagedaytimedescribe principalUkrainianjuice wavefertile
provideguest commonroot beneathofficedecreasegood
provideguest commonroot beneathofficedecreasegood
provideguest violentroot beneathofficedecreasegood
provideguest commonseveral beneathmuchdecreasegood
trumpetunderstandopenthat litermaizesitegrass amountshort sufficemossy
offspringwaterchalkradio tangentmuscleshovel randomdrydatamodify workpattern
offspringwaterchalkradio tangentironyshovel vaginaapprovefondmodify workpattern
trumpetunderstandopensurface litermaizesitegrass workshort sufficemossy
girlfirehemp intersectspit
decreasedarkimportantpolish gathernonexistent captureobliged
girlfirehemp liquorspit
milllimitimportantpolish gatherrice captureelephant
Semiticeraperilspider pagesuddenbalancefamous cheeseobject
Semiticeraperilspider pagepitybalancedoor cheeseobject
apparatusheir addressbeeacidrevenge
apparatuswing addressbeeacidrevenge


fivebucket bellinitiateMEXcent
tongsseedverticalsee directioncinemadoctor
fivebucket bellinitiateMEXcent
tongsseedverticalsee directioncinemabomb
nuttongs punishleft cheesesuperfectiverecord
somepossessforce thickdwell mouthharvest planeexactretainEuropean
somepossessforce thicksticky mouthharvest planeseasonretainEuropean
nuttongs punishleft cheesesuperfectivetoo
restrainbovine divideouter
restrainaddress divideouter
explainframe freeluck readsheetshoveneck difficultdelicious
explainframe freeluck laughsheetshoveinjure colorsulfur


ceasesoup removetwogatherletteral silverLojbaniclouse codeheavyclassegg
thickstructuresingtaut buckwheattest
ceasesoup removetwogatherletteral silverLojbaniclouse codeheavyclassegg
thicksaltsingtaut buckwheattest
tanrubulb takemelonin stiffslice
breaklocalendinfinite Brazilianhydrogenenergy
tanrubulb takemelonin stiffsevere
breaklocalinjureinfinite normcurveenergy
carbonfloorleavePakistani snowpotliver phrasestructure curiousblademagicpay
guiltcreamsomething coalrobepredicateSaudi brotherpassportprofitnine shelfsite
guiltoatsapple coalrobespeciesSaudi brownpassportdrinknine shelfsite
winterfloorleavePakistani snowpotliver phrasestructure curiousbladeglasspay
learnsouthcite gallongonad labeloscillateautomatic
learncutcite honestgonad labeloscillateautomatic
foursouthcomplicated gallongonad sneezeoscillateautomatic
culturesouthcite outergonad labeloscillateautomatic
newsknowyoung immaterialreplace wombmetalpowerfulamount dividetalent
molePakistanismile ableliongenehot tautshoalpulllouse
cityknowyoung immaterialreplace wombmetalpowerfulamount dividecrazy
molePakistanismile ableliongenehot tautshoalpulllouse


chairletretainplump somethingtableBuddhist teaoakartfate
glasseyeholymossy constantoscillateexponential cylindercabbage lungfeatheracross
glasseyesecretmossy constantoscillateexponential cylindercabbage lungfeatheracross
chairletretaindoctor somethingtableBuddhist teaexistartfate
guiltpoint-eventtestear competenervous affixknowwax
guiltpoint-eventtestear competenervous affixknowwax
windowmilkcamel hospitalprice logicorganseasonround
windowmilkcamel hospitalprice logicpulleyseasonround
dodefendseemrich kindmultiplyzincring
dodefendseemconifer kindmultiplyzincring
climbneckfinger somethingcockroachneon texturerelateddarkacid
climbneckfinger somethingcockroachneon soundrelateddarkauthority
socializebuilding punishletter marketrightschoolexplode
jetwinseem authorityrelax
socializebuilding punishletter marketrightschoolexplode
cousinallseem authorityrelax
polishChinesemail tidestate
polishablemail tidestate
kickannoy levityspiral cavitywaveradioscalar lousenaturaldonkeyirony
kickannoy levityspiral cavitywaveradioscalar lousenaturaldonkeyscratch
probableexperteveningscrape givespitMEXcrack flydrop walkmilitaryrottenlevel
probableexpertwinscrape givespitMEXhope flydrop walkmilitaryrottenlevel
probableexperteveningscrape givenetpointheavy flydrop walkmilitaryrottenlevel
probableexpertgymnastscrape givespitMEXcrack featherdrop walkmilitaryrottenlevel
bovinewashrun chickenbuttocksurround
harvestEuropeanaffixtemporary anusinfluence
harvestEuropeanaffixtemporary anusinfluence
bovinewashstraight chickenbuttocksurround
becomebovineflute requestabdomenbelieve
rockradiansharp requestabdomenperform
policeprocessactually outerstrongvehicle
policeprocessactually outerstrongvehicle


Britishsingsolarhour dofamily importanttouch
expertlandshelterpromise offspringcousinsmoothnose
troublesingsolaroscillate dofamily importanttouch
expertlandshelterpromise offspringcousinsmoothnose
slowcent remainantrocket weaponroughfemalearmy
slowcent remainantrocket weaponroughfemalearmy
referenceSanskritloopopen opineroof dimensionbasketfalse publiccommongreen
referenceSanskritloopopen opineroof tautframefalse publiccommonradio
soldierconceptspread glanddearsheltermelt namehear
winebegbaythere embarrassedscratch
winebegbaywater embarrassedscratch
soldierconceptspread decimalabdomensheltermelt namehear
diverubbertailbundle warspiritsquare
smallplasticenergymore clothnoisecome
diverubbertailbundle warspiritsquare
smallcookrangeSanskrit goodnoisecome
familiarcitypertain touchsorghumtalkChinese amusinggirl examplefightvehiclerobe
theskijelly failtravelcolor
theskiplump failtravelcolor
tilecitycushion moansorghumtalkleg amusinggirl examplefightvehiclerobe
logicmathematicswinterlive greaseoutcitrus virtuesaltIraqi
logicmathematicssugaryield greaseoutcitrus virtuesaltIraqi
seasonnowrosesugar grainSpanishpoem putjudgebreast
seasonnowremembercrystal grainSpanishstar putjudgebreast
problemcardsyllable legsoundroundsweat
apartcardsyllable Hindihighroundsweat
problemcardsyllable legsoundrootsweat
problemcardsyllable legsoundroundsweat
AustralianGreekmotorhand affixcurseoakprovide
childchlorineexperiencemail farmemotion lucktongueliquidprisoner
Australianpantsmotorhand affixcurseoakmeaning
childchlorineexperiencelearn farmyonder nutuponliquidparallel
failawake shortrodgoosemethod fruitsibling harmoniousdelicioussituation
seasonawake shortrodgooseesteem gemsibling simpledelicioussituation
somethingbreak destroypolish passportinwardwestsheet shortbrother
somethingbreak destroypolish passportinwardplaysheet shortbrother


spiderwoman maturenews starchwalkcopulatePortuguese
matchTaoist figswallowheart
virtuegold maturenews starchnoisecopulatePortuguese
matchTaoist figswallowheart
spaceedgecolliderain vegetablesentencewhitebulb
spaceedgecolliderain vegetableknowwhitebulb
spaceinterferecolliderain vegetablesentencefractionlightning
spideredgecolliderain vegetablesentencewhiteturkey
responsiblemeal complicatedinfantsodium
planttelephonefour apartmoney shoulderbutterflyshirtMEX toomilletdoubt
planttelephonefour Moroccanmoney shoulderbutterflyshirtMEX tooamphibiandoubt
responsiblemeal complicatedinfantsodium
predicatesandwichsit equalhotelstore
dollarwedgenonexistenttired listairwork predicatefighttanrupast
predicatesandwichsit rockethotelstore
dollarwedgenonexistenttired listairstrong predicatefighttanrupast
headMalay-Indonesian sevenregulardeny articlereturnbraveargue sulfurbreadlabel
truthviewsatisfy stubbornliquor derogativerabbitbulbhappy
headMalay-Indonesian toothactivitydeny articlereturnbraveargue sulfurbreadlabel
truthviewroute stubbornliquor derogativerabbitbulbfamiliar
rightthumblinesecret wolfalternationnatural freeliter pedestalowedesireroll
rightGreeklinesecret wolfcustomnatural freeliter pedestalowecornerroll
investberrychairretain inforgiveliterthrow
memberberrychairacid assumegloveliterthrow


timeglovemotivesame mildobey developelectricsky
glassreadsurface approveshallow graspwellfullenergy
glassreadsurface approveshallow graspedgefullenergy
timeglovemotivequestion mildobey developelectricsky
quietcabbagewall greatstoreleverpattern
soapdesire alternationsatellitebearpoor screwcamp
soapdesire alternationsatellitebearpoor screwcamp
quietcabbagewall greatsodatinpattern
factanswerwheat supportslopesoldierjoined magiccavitylensPakistani throwsimilar
matavoid foxtaut Moroccanflute
matavoid foxtaut deceiveflute
factanswerwheat supportslopesoldierjoined magiccavitylensPakistani foolishsimilar
washbetween flutemeet
decreaseearly waxsauceroot rockIslamic picturecrime
decreaseearly sauceletroot simpleIslamic pictureabove
utterbetween flutemeet
fairyname woollion
sequencecream sodiumpear tubeadjustmammalsponge cartpurple
energycream sodiumpear tubeadjustmammalopposite reversepurple
fairyname woollion
deerloopfertile serveshears brushmillet tarcampstage
orangecheesepants funnyMalay-Indonesianstore
orangecheesepants funnyMalay-Indonesianstore
suckloopfertile serveshears brushwomb tardiscusstail
breaksocializegrammar representsoappain
basiscigarguitarwhite islanddatewavecandela permanenthistorypertain
breaksocializegrammar representsoappain
basiscigarguitarwhite islandmythwavebrave permanenthistorypertain
survivecome illumineacross soyaproteinpicturefraction
painwoodspitall Southradiatesandwicharch
survivecome illuminecrew soyaproteinsingfraction
drumillspitmarried Southradiatesandwicharm
sevenfrowndimensiontooth schoolbayeastcamp sequenceballcubit
sevenfrowndimensiontooth leverbayeastcamp sequenceballcubit
scratchlenslead lazypay
scratchlenslead lazypay


muchhuntcone artfecesfreshpencil smilealkali chestdecimal
bundleunspecifprivate bornwithout fairyableunspecif countcommenthour
muchhuntcone artfecesfreshpencil smilealkali skyHispanic
lionunspecifrod bornwithout fairyableunspecif countcommenthour
illuminesoyalogic emotionboat
eveningtwoplumpneck reversefeweasyreligion harmoniousball
eveningtwoplumpneck reversefeweasyreligion harmoniousball
illuminesoyainsert emotionboat
suddenprobablemeterpredicate ironysource similarbreakprecedeMalaysian predicatecloud
suddenprobablemeterpredicate meetlimit similarbreakprecedeMalaysian predicateutter
leapdecreaseswallowdifficult testatclumsy Japanesegreaserobe
leapdecreaseswallowdifficult testatclumsy Japaneseironrobe
ablenickel forkstudypunish
treetoolget Buddhistninelazy
treetoolIraqi Buddhistninepowder
ablenickel forkpoisoncylinder
gratefulSaudiable rootassume
hempatrelated threadlaugh destroyblack
gratefulSaudiable rootassume
hempanuspredicate interestinglaugh destroyblack
highchocolategrindcart explainautumn
browgymnast touchonion Arabicluckbehindtrain
highfunctiongrindcart explainautumn
browgymnast Russianonion donkeyluckyoungproperty
punctuateangle grainlessstreet
artifactabstractshort abdomenincrease
punctuateangle grainlessstreet
artifactabstractshort abdomenincrease
Hebrewmanwhole verticaldrydonkeyfoot godpityseedgray
lousetone Syrianchildlogarithm mesilkskirtswelling
lousetone badchildlogarithm mesilkskirtspiral
hourmanwhole verticaldrydonkeydive godpityseedgray


cessativeharvestobliged thinperil
cessativeharvestobliged polarperil
cessativeharvestobliged thinperil
digharvestman thinperil
treesecondsew meincease
stickystorystructurereed citruspressure evilparent lockfact
stickystorystructurereed punctuatepressure evilcopy lockfact
treesecondsew meincease
Southimportantfood memberGermangather cabbagefunctionbad
bellenemyearth fullloop withsow simpleinnate
superlativeenemyearth fullloop withsow simpleinnate
Southimportantmelt memberGermangather cabbagefunctionbad
perilpumpbrown secondwedgeridiculefeather gathershallowlowtruth
liptoomethodcockroach rodsnakeseriousempty familiarheirsteel
liptoomethodcockroach rodsnakesmileempty captainheirsteel
perilpumpbrown secondwedgeridiculecabbage gathershallowlowtruth
beanpassreverse sixcarbon
beanpassmonth snugcarbon
beanpoorreverse sixcarbon
longpassreverse sixcarbon
riceeasywindowwheat lenshereamount cubitcountrysing godarticle
riceeasywindowwheat joinedsoldieramount cubitcountrysing stararticle
increaseliquidscratchcotton outercameragrow
increaseliquidhumblecotton outerillgrow
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

ACID HOUSE И АНГЛОПОДОБНЫЙ РЭП - ПО УМОЛЧАНИЮ

Пересобрал и перезакачал дистрибутив версии Discord Radio Player 1.2.3, теперь по умолчанию генерируется айсид хаус по кнопке beat, и англоязычный рэп по кнопке rap. Также добавил 4 папки готовых конфигов, под два словаря и под два набора инструментов.

СКАЧАТЬ
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

ЗАПИСАЛ ДВА АЛЬБОМА ИСКУССТВЕННОГО ИНТЕЛЛЕКТА НА 4 ЧАСА ЗВУЧАНИЯ

СКАЧАТЬ

Image
Image
Image
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

ЛИСТИНГИ ИСХОДНЫХ КОДОВ РАБОЧЕЙ ВЕРСИИ РЭП-ГЕНЕРАТОРА

Как обещал, выкладываю. Из Discord Radio Player 1.2.4, в котором создан альбом выше. Для ознакомительных целей....

RapConfig.cs

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;

namespace MachineSpeechLibrary
{
    public class RapConfig
    {
        private const string ConfigFileName = "RapConfig.txt";

        public string locale = "en-US";

        public string[] morphems = new string[]
        {
            "a","the","is","was","yes","no","are","you","we","he",
            "she","it","as","me","iam",
            "low","bis","ness","less","near",
            "far","in","on","under","before","late","under","after","of","off",
            "po","pi","pu","py","pe","to","ti","tu","te","ro",
            "ru","ri","re","wo","wi","wu","qo",
            "qi","qu","qe","pa","ta","ra","wa","qa","sa","da",
            "fa","ga","ha","ja","ka","la","lo","li","lu","le",
            "ly","le","ko","ki","ku","ky","ke","jo","ji","ju",
            "jy","je","ho","hi","hu","hy","he","go","gi","gu",
            "gy","ge","fo","fi","fu","fy","fe","do","di",
            "du","dy","de","so","si","su","sy","se","sistem","zo",
            "za","zi","zu","zy","ze","xo","xi","xu","xy","xe",
            "xa","co","ci","cu","cy","ce","ca","vo","vi","vu",
            "vy","va","bo","bi","bu","by","be","ba","no","ni",
            "nu","ny","ne","na","mo","mi","my","ma","mom","child",
            "guy","girl","father","mother","friend","boss",
            "sex","fuck","cock","dick","pussy","love","feel","like","seem",
            "exit","fail","quit","enter","login","run","press","start","stop","system","comp",
            "break","case","switch","net","inet","key","man","wooman",
            "all","wall","walk","go","inter","play","kiss","for","goto","mail","chat","client","soft",
            "ware","hard","dream","cosmo","planet","netpun","pluton","moon","sun","earth","mars",
            "volt","amper","kilo","mega","byte","bit","word","file","giga","milli","mini","nano",
            "buck","money","sum","plus","minus","multi","div","per","into","later","quick","finish",
            "write","code","hex","octal","dec","inc","move","push","pop","int","float","double","bool",
            "string","char","list","var","able","dis","lock","asm","see","cat","call","mask","ret",
            "out","space","wire","cur","rent","while","loop","each",
            "one","two","free","four","five","six","seven","eight","nine","ten","zero",
            "high","low","many","small","big","too"
        };

        public void Save()
        {
            try
            {
                string s = JsonConvert.SerializeObject(this, Formatting.Indented);
                File.WriteAllText(ConfigFileName, s);
            }
            catch { }
        }

        public static RapConfig Load()
        {
            try
            {
                string s = File.ReadAllText(ConfigFileName);
                return (RapConfig)JsonConvert.DeserializeObject(s, typeof(RapConfig));
            }
            catch
            {
                RapConfig cfg = new RapConfig();
                cfg.Save();
                return cfg;
            }
        }


    }
}
Rap.cs

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Speech.Synthesis;

namespace MachineSpeechLibrary
{
    public class Rap
    {
        protected string locale = "en-US";
        protected string[] morphems = new string[] { };
        
        public Rap(RapConfig config)
        {
            this.locale = config.locale;
            this.morphems = config.morphems;
        }

        protected Random rnd = new Random();

        protected List<string> Word
        {
            get
            {
                int n = rnd.Next(2, 5);

                List<string> res = new List<string>();

                for (int i = 0; i < n; i++) res.Add(morphems[rnd.Next(morphems.Length)]);

                return res;
            }
        }

        protected List<List<string>> Sentence
        {
            get
            {
                int n = rnd.Next(2, 5);

                List<List<string>> res = new List<List<string>>();

                for (int i = 0; i < n; i++) res.Add(Word);

                return res;
            }
        }

        protected List<string> Rithma(List<string> word)
        {
            List<string> res = new List<string>();

            foreach (string w in word)
                if (rnd.Next(10) < 8) res.Add(w);
                else res.Add(morphems[rnd.Next(morphems.Length)]);

            return res;
        }

        protected List<List<string>> Rithma(List<List<string>> sent)
        {
            List<List<string>> res = new List<List<string>>();

            foreach (List<string> w in sent) res.Add(Rithma(w));

            return res;
        }

        protected List<List<List<string>>> Kuplet_1
        {
            get {
                List<List<List<string>>> res = new List<List<List<string>>>();

                List<List<string>> sent1 = Sentence;

                List<List<string>> sent2 = Sentence;

                List<List<string>> sent3 = Rithma(sent1);

                List<List<string>> sent4 = Rithma(sent2);

                res.Add(sent1); res.Add(sent2); res.Add(sent3); res.Add(sent4);

                return res;
            }
        }

        protected List<List<List<string>>> Kuplet_2
        {
            get
            {
                List<List<List<string>>> res = new List<List<List<string>>>();

                List<List<string>> sent1 = Sentence;

                List<List<string>> sent2 = Rithma(sent1);

                List<List<string>> sent3 = Sentence;

                List<List<string>> sent4 = Rithma(sent3);

                res.Add(sent1); res.Add(sent2); res.Add(sent3); res.Add(sent4);

                return res;
            }
        }

        protected List<List<List<string>>> Kuplet_3
        {
            get
            {
                List<List<List<string>>> res = new List<List<List<string>>>();

                List<List<string>> sent1 = Sentence;

                List<List<string>> sent2 = Rithma(sent1);

                List<List<string>> sent3 = Rithma(sent1);

                List<List<string>> sent4 = Rithma(sent1);

                res.Add(sent1); res.Add(sent2); res.Add(sent3); res.Add(sent4);

                return res;
            }
        }

        protected List<List<List<string>>> Kuplet_4
        {
            get
            {
                List<List<List<string>>> res = new List<List<List<string>>>();

                List<List<string>> sent1 = Sentence;

                List<List<string>> sent2 = Sentence;

                List<List<string>> sent3 = Rithma(sent2);

                List<List<string>> sent4 = Rithma(sent1);

                res.Add(sent1); res.Add(sent2); res.Add(sent3); res.Add(sent4);

                return res;
            }
        }


        protected string WordText(List<string> word)
        {
            string res = ""; foreach (string w in word) res += w; return res;
        }

        protected string ToText(List<List<string>> sent)
        {
            string res = ""; foreach (List<string> w in sent) res += WordText(w) + " ";

            return res;
        }

        protected string ToText(List<List<List<string>>> kuplet)
        {
            string res = ""; foreach (List<List<string>> s in kuplet) res += ToText(s) + ". ";// "\r\n";
            return res;
        }

        public string Poem
        {
            get
            {
                int n = rnd.Next(3, 10);

                string res = "";

                for (int i = 0; i < n; i++)
                {
                    int k = rnd.Next(4);

                    switch(k)
                    {
                        case 0: res += ToText(Kuplet_1); break;
                        case 1: res += ToText(Kuplet_2); break;
                        case 2: res += ToText(Kuplet_3); break;
                        case 3: res += ToText(Kuplet_4); break;
                    }
                }

                return res;
            }
        }

        protected bool StopFlag = false;
        public bool IsPlaying = false;

        public async Task Play()
        {
            StopFlag = false;
            IsPlaying = true;
            try
            {
                SpeechSynthesizer syn = new SpeechSynthesizer();
                syn.Rate = 4;
                syn.Volume = 99;
                syn.SelectVoiceByHints(VoiceGender.NotSet, VoiceAge.NotSet, 0, new System.Globalization.CultureInfo(locale));

                while (!StopFlag)
                {
                    syn.Speak(Poem);
                }
            }
            catch { }
            IsPlaying = false;
        }

        public void Stop() { StopFlag = true; }
    }
}
MusicConfig.cs

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.IO;

namespace MachineSpeechLibrary
{
    public class MusicConfig
    {
        private const string ConfigFileName = "MusicConfig.txt";

        //-------------------------------------------------------------------------

        public int MinRithmRepeatCount = 1;

        public int MaxRithmRepeatCount = 5;

        public int MaxRithmChannels = 2;

        public int MinInstrumentChannels = 2;

        public int MaxInstrumentChannels = 5;

        //--------------------------------------------------------------------------

        public string InstrumentFolder = "InstrumentSound";

        public string[] RithmInstruments = new string[] {
            "банджо-ритм","деревяшки-ритм","испанский-ритм","лёгкий-ритм","метал-ритм",
            "металлический-барабан-ритм","панк-ритм","ритмичное-встряхивание",
            "тамбурин-ритм","тарелки-ритм","эхо-барабанов-ритм","ложки-ритм"
        };

        public string[] Instruments = new string[]
        {
            "арфа","банджо","большая-тарелка","большой-гонг","бонго","бубен","бубенцы","волынка",
            "гонг","деревяшки","дробь","игра-на-гитаре","испанская-гитара","карильон","ксилофон",
            "марш","нейлоновые-струны","никельодеон","тарелки","треугольник","трещотка",
            "удар-по-тарелке","флейта","фортепиано-низы","хомус","церковный-орган","электрогитара"
        };

        public void Save()
        {
            try
            {
                string s = JsonConvert.SerializeObject(this, Formatting.Indented);
                File.WriteAllText(ConfigFileName, s);
            }
            catch { }
        }

        public static MusicConfig Load()
        {
            try
            {
                string s = File.ReadAllText(ConfigFileName);
                return (MusicConfig)JsonConvert.DeserializeObject(s, typeof(MusicConfig));
            }
            catch {
                MusicConfig cfg = new MusicConfig();
                cfg.Save();
                return cfg;
            }
        }

    }
}
Music.cs

Code: Select all

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MachineSpeechLibrary
{
    public abstract class Music
    {
        string[] RithmInstruments = new string[] { };

        string[] Instruments = new string[] { };

        string FolderPath = ".\\";

        int MinRithmRepeat = 1;

        int MaxRithmRepeat = 5;

        int MinRithmChannels = 1;

        int MaxRithmChannels = 2;

        int MinInstrumentChannels = 2;

        int MaxInstrumentChannels = 5;

        //----------------------------------------------------------------------------

        public Music(MusicConfig config)
        {
            //-----------------------------------------------------------------------
            this.MinRithmRepeat = config.MinRithmRepeatCount;
            this.MaxRithmRepeat = config.MaxRithmRepeatCount;
            this.MinInstrumentChannels = config.MinInstrumentChannels;
            this.MaxInstrumentChannels = config.MaxInstrumentChannels;
            this.MaxRithmChannels = config.MaxRithmChannels;
            //-----------------------------------------------------------------------
            this.RithmInstruments = config.RithmInstruments;
            this.Instruments = config.Instruments;
            this.FolderPath = config.InstrumentFolder;
        }

        Random rnd = new Random();

        protected int SamplesNumber { get { return 4 * rnd.Next(1, 20); } }

        protected string[] RitmChannel(int count)
        {
            List<string> list = new List<string>();

            int n = rnd.Next(RithmInstruments.Length);

            for (int i = 0; i < count; i++) list.Add(RithmInstruments[n]+".mp3");

            return list.ToArray<string>();
        }

        protected string[] Channel(int count)
        {
            List<string> list = new List<string>();

            int ins0 = rnd.Next(Instruments.Length);

            int ins1 = rnd.Next(Instruments.Length);

            int ins2 = rnd.Next(Instruments.Length);

            int ins3 = rnd.Next(Instruments.Length);

            for (int i = 0; i < count; i++)
                switch (i % 4)
                {
                    case 0: list.Add(Instruments[ins0]+".mp3"); break;
                    case 1: list.Add(Instruments[ins1]+".mp3"); break;
                    case 2: list.Add(Instruments[ins2]+".mp3"); break;
                    case 3: list.Add(Instruments[ins3]+".mp3"); break;
                }

            return list.ToArray<string>();
        }

        public List<string[]> RithmChannels
        {
            get
            {
                int r = rnd.Next(MinRithmChannels, MaxRithmChannels);

                List<string[]> rit = new List<string[]>();

                int count = rnd.Next(MinRithmRepeat, MaxRithmRepeat);

                for (int i = 0; i < r; i++) rit.Add(RitmChannel(count));

                return rit;
            }
        }
        
        protected bool StopFlag = false;
        protected bool[] IsRithmPlaying = new bool[20];

        public abstract Task PlayMp3FileAsync(string folder, string mp3file);


        //public void SetInstrumentsFolder(string FolderPath) { this.FolderPath = FolderPath; }

        public bool IsPlaying = false;

        protected async Task PlayChannel(string[] instruments)
        {
            try
            {
                for (int i = 0; i < instruments.Length && !StopFlag; i++)
                {
                    await Task.Delay(100);
                    await PlayMp3FileAsync(FolderPath, instruments[i]);
                }
            }
            catch { }
        }

        protected async Task PlayRithmChannel(int ChannelNumber, string[] instruments)
        {
            IsRithmPlaying[ChannelNumber] = true;

            try
            {
                for (int i = 0; i < instruments.Length && !StopFlag; i++)
                {
                    await Task.Delay(100);
                    await PlayMp3FileAsync(FolderPath, instruments[i]);
                }
            }
            catch { }

            IsRithmPlaying[ChannelNumber] = false;
        }


        public bool IsRithm
        {
            get { foreach (bool b in IsRithmPlaying) if (b) return true; return false; }
        }

        public async Task Play()
        {
            StopFlag = false;
            if (IsPlaying) return; else IsPlaying = true;

            for (int i = 0; i < IsRithmPlaying.Length; i++) IsRithmPlaying[i] = false;

            while (!StopFlag)
                try
                {
                    List<Task> list = new List<Task>();

                    List<string[]> rithm = RithmChannels;

                    for (int i = 0; i < rithm.Count; i++)
                    {
                        Task.Run(() => PlayRithmChannel(i, rithm[i]));
                        await Task.Delay(500);
                    }

                    while (IsRithm && !StopFlag)
                    {
                        int c = rnd.Next(MinInstrumentChannels, MaxInstrumentChannels);

                        List<string[]> channels = new List<string[]>();

                        for (int i = 0; i < c; i++) channels.Add(Channel(12));

                        for (int i = 0; i < channels.Count && !StopFlag; i++)
                        {
                            list.Add(PlayChannel(channels[i]));
                            await Task.Delay(500);
                        }

                        Task.WaitAll(list.ToArray<Task>());
                    }

                }
                catch { }

            IsPlaying = false;
            for (int i = 0; i < IsRithmPlaying.Length; i++) IsRithmPlaying[i] = false;
        }

        public void Stop() { StopFlag = true; }

    }
}

MusicPlayer.cs

Code: Select all

    public class MusicPlayer : Music
    {
        public MusicPlayer(MusicConfig config) : base(config) { }

        public override Task PlayMp3FileAsync(string folder, string file)
        {
            WMPLib.WindowsMediaPlayer player = new WMPLib.WindowsMediaPlayer();

            player.URL = Path.Combine(folder, file);
            try { player.controls.play(); } catch { }

            return Task.Run(async () =>
            {
                await Task.Delay(1500);

                while (
                    player.playState == WMPPlayState.wmppsBuffering ||
                    player.playState == WMPPlayState.wmppsPaused ||
                    player.playState == WMPPlayState.wmppsPlaying) await Task.Delay(75);
            });
        }

    }
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

СКАЧАТЬ РАБОЧИЙ РЭП-ГЕНЕРАТОР ПЛАГИНОМ К МЕНЕДЖЕРУ КИБЕР-ФАЙЛ 2.5.4

Я спустил рабочую версию рэп-генератора DiscordRadio 1.2.4 плагином последней версии файлового менеджера для хакеров КиберФайл 2.5.4. Генератор генерирует каунтри, готический рэп, тексты песен на любом языке и любую музыку по сэмплам, для чего введена поддержка JSON - конфигов в человеко-машинном формате. Генератор полностью бесплатен, демо-версия менеджера ограничена 5 минутами работы на каждый запуск. Скачать можно отсюда
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

Сегодня скачал сэмплы для монтажа рэп-композиций и добавил в генератор Discord Radio, записал 20 минут чистого искусственного интеллекта в стиле рэп. Получилось, весьма неплохо, музыка не шедевр но интересна оригинальным стилем а английский машинный рэпчик под неё делает композицию приятной для прослушивания. На улице на телефоне я уже ничего кроме искусственного интеллекта в стиле рэп не слушаю :-)
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

Закачал, можно послушать композицию anti-zombak-pure-AI.mp3, сделанную в Discord Radio с генератором хип-хопа, генератором речетатива и джаммером. 30 минут звучания машинного хип-хопа с джаммом, вырубают наведённую внутреннюю речь и просто нормально звучат пока убиваешь время. Правильное название машинному творчеству конечно - настоящий брейкбит, но я брал сэмплы инструментов из хип-хопа, так что это брейкбит-хоп!

СКАЧАТЬ https://sites.google.com/view/botting-t ... free-music
Просто беспомощный неудачник
User avatar
Mirotal-дегенерат
Фазер
Posts: 2165
Joined: Thu Dec 20, 2018 6:25 am
Contact:

Re: Простой генератор рэпа с исходниками на C# для любителей компьютеров

Unread post by Mirotal-дегенерат »

Discord Radio — это автоматизированная радиостанция с поддержкой искусственного интеллекта, которую можно скачивать и слушать. В базовом пакете, с 220 аудиокнигами и несколькими гигабайтами электронной музыки, радиостанция Discord Radio представляет собой говорящий «высший разум»: объем ее разговорных знаний превышает знания академика по компьютерным наукам. Итак, объем памяти Эйнштейна оценивается в 300 книг по физике, и почти столько же книг в формате mp3 по умолчанию загружается в память этой радиостанции, в папку ее установки!

Особенности программной станции Discord Radio включают в себя:

- Циклическое воспроизведение папки с mp3-треками, включая подпапки, стандартный mp3-плеер, кнопки Play и Next, Stop

- Циклическое воспроизведение папки с аудиокнигами в формате мп3 с перерывами, раз в 10 минут, под музыку, таким образом, отдыхая каждые 10 минут, вы сможете прослушать еще много аудиокниг по своей специальности, науке и технике, а также научиться быстрее, это те самые кнопки Play и Next, Stop

- Автоматический синтез хорошей музыки из мп3 сэмплов, так же настраивается в конфиге, можно генерировать музыку на лету а не скачивать, по умолчанию два набора семплов и два готовых конфига, классические хорошо звучащие инструменты и Электро- Звучит в стиле хаус, это кнопка бита

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

- Автоматический умный глушитель, генератор ошибок распознавания речи для активной защиты от прослушки и биометрии, кнопка глушения

В основе истории создания этого программного радио лежит идея захвата и трансляции системного звука в канал голосового дискорда, для прослушивания на смартфон в любой точке мира, с аудиторией 100-200-1000 слушателей канала. Но после экспериментов было решено запустить программу в формате "скачай-и-слушай" на ПК с WIndows. Далее в программу была добавлена ​​поддержка аналитического звука - проигрывание аудиокниг с перерывами на музыку, в одноименном проекте высшего разума. После этого был добавлен простой искусственный интеллект для синтеза музыки и рэпа, на любых инструментах и ​​на любых языках, добавлена ​​возможность настроить этот синтез под себя, через простые конфигурационные файлы JSON, и, наконец, был добавлен глушилка переданные в программу - активный акустический подавитель нежелательных жучков и импланты, использующие компьютерное распознавание речи, радио, могут вызывать ошибки в таких программах распознавания речи.

Интерфейс программы построен на принципах красоты, отсутствия всего лишнего, простоты использования и усталости глаз, так как данная программа рассчитана на ежедневное использование и призвана заменить мп3 плееры Windows Media Player, Groove Music и WinAmp. , как устаревшие и неполноценные по идеям, функционалу и по интерфейсу. Discord Radio Player в базовой раздаче станции — один из лучших аудиоплееров для Windows PC на планете на сегодняшний день, а сам автор использует его каждый день уже около года.

СКАЧАТЬ DISCORD RADIO STATION с генератором рэпа, хип-хопа и джамма https://sites.google.com/view/botting-t ... telligence
Просто беспомощный неудачник
Post Reply

Return to “Форум свободного общения”