Criando um gerador automático de Forró의 가사
7253 단어 machinelearningmusicpythonnlp
Há uns meses a teve uma ideia (ao meu ver) genial de aplicar conceitos de análise de dados com músicas de Forró. 코모? Ela decidiu utilizar os dados das músicas da banda Calcinha Preta numa série de posts (Vol. 1 , Vol. 2 , Vol. 3 ) e palestras.
Daí me surgiu a ideia de também fazer algo utilizando o forró como contexto.
No forró feito pela Calcinha Preta e muitas outras bandas, grupos e cantores, não só a melodia característica do gênero musical se destaca, mas também as letras que literalmente marcam gerações. Em sua maioria se resumem em desventuras amorosas e declarações de amor.
Seria uma máquina capaz de escrever uma música de forró comparável aos grandes cancioneiros populares? É o que veremos a seguir.
다도스
Primeiramente vamos aos dados.
Irei utilizar as letras das músicas da Calcinha Preta , Cavaleiros do Forró , Limão com Mel eAviões do Forró disponíveis 번호 letras.mus.br . Nada que um scraper não resolva.
Foram um total de 2,309 음악.
전처리
Para esse caso vou fazer um pre-processamento simples, apenas deixar tudo em minúsculo, separar as pontuações das palavras e colocar uma música por linha.
Esse último passo do pre-processamento eu resolvi fazer assim pois num teste anterior utilizando um verso por linha eu não obtive um bom resultado. Acredito que seja pelos versos geralmente serem bem pequenos e com pouco contexto, além de ser muito comum que uma frase seja dividida em vários versos. Nesse caso decidi colocar todos os versos de cada música numa mesma linhas, mas separados por um token ( #
).
Ou seja, o nosso algoritmo irá gerar a letra completa de uma música de uma só vez.
Treinando 알고리즘
Para criar o modelo de geração de textos, eu vou utilizar a biblioteca textgenrnn que possibilita criar e treinar uma rede de geração de textos com Redes Neurais Recorrentes em poucas linhas de código.
예를 들어, 다음과 같은 모델이 있습니다.
from textgenrnn import textgenrnn
textgen = textgenrnn(name="new_model")
textgen.reset()
textgen.train_from_file(data_path, num_epochs=10,
gen_epochs=2, new_model=True,
word_level=True, rnn_bidirectional=True,
rnn_size=64, dim_embeddings=300)
결과
Segue alguns de letras desse feat de Calcinha Preta, Cavaleiros do Forró, Limão com Mel e Aviões do Forró.
Eu não preciso de você
O que eu sinto por ti
É por favor, me faz enlouquecer
Toda segunda a me entregar
Me diga, sem me deixar, ah
Eu vou te dar o que você quiser
Eu não consigo te esquecer
Eu quero ver você falar de mim
Já cansei de esperar
Acabou nosso amor
E agora eu sofro por você
Mas eu não consigo esquecer
Você é linda e eu mais
Pra mim e não quer mais saber
De verdade
Você não vai me dominar
Você não vai me dominar
Você não é dona de mim para me dominar
Não sei o que fazer
Com tanta dor
Você não pode entender
Como a força desse amor
Vem fazer amor
Me dar calor
Me deixa louca
E me chama de ti
Digo sim pro meu coração
Isso tinha tudo que eu quis
Eu sei que te amo
Se ligue pra mim
Que nao da mais te esquecer
Você não sabe o que é amor
Me diz como é complicado
Mas não se amar ninguém é segurar
Eu amo você
Eu te amo demais
Eu não posso ficar
Eu te avisei
Eu te chamo
Quando me diz o que eu faço
Se você me vê
Agora eu me apaixonei
Por você toda vida
Eu queria ouvir você dizer
Te amo, mas
Mentir pra mim
Ainda é te amo ninguém
Hoje eu te amo, amo, amo
Sei que eu te amo, amo, amo
Amo, amo, amo...
Você é o meu amor
Só você me faz sentir tão sozinha
E agora que há 100 anos de viver
Eu não te esqueci
Nem sei o que fazer
Você me faz sofrer
Não vou deixar você fugir
Mas eu não posso te perder
Não posso te amar
Eu sei que vou ficar sozinho olhando pra você
Tenho muito medo que eu te dou
E não quis assim
Me diz o que é que eu faço pra ter você
Menina eu confesso: eu te amo demais!
Alguns dos versos são 100% "originais", ou seja, em nenhuma das letras tem um verso exatamente igual. Algumas vezes ele gera de 1 a 3 versos exatamente iguais a de alguma música, em outras ele gera 1 verso e meio de uma música e completa com outra música diferente.
O que eu achei mais incrível é que com pouco treinamento ele já ser capaz de gerar versos e até mesmo estrofes com uma construção gramatical correta, original e com uma certa linha de contexto.
모든 코드는 다른 저장소를 활용합니다.
Vinicius / 가사 생성기
textgenrnn으로 가사 생성
Reference
이 문제에 관하여(Criando um gerador automático de Forró의 가사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/vnicius/criando-um-gerador-automatico-de-letras-de-forro-59h5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Para esse caso vou fazer um pre-processamento simples, apenas deixar tudo em minúsculo, separar as pontuações das palavras e colocar uma música por linha.
Esse último passo do pre-processamento eu resolvi fazer assim pois num teste anterior utilizando um verso por linha eu não obtive um bom resultado. Acredito que seja pelos versos geralmente serem bem pequenos e com pouco contexto, além de ser muito comum que uma frase seja dividida em vários versos. Nesse caso decidi colocar todos os versos de cada música numa mesma linhas, mas separados por um token (
#
).Ou seja, o nosso algoritmo irá gerar a letra completa de uma música de uma só vez.
Treinando 알고리즘
Para criar o modelo de geração de textos, eu vou utilizar a biblioteca textgenrnn que possibilita criar e treinar uma rede de geração de textos com Redes Neurais Recorrentes em poucas linhas de código.
예를 들어, 다음과 같은 모델이 있습니다.
from textgenrnn import textgenrnn
textgen = textgenrnn(name="new_model")
textgen.reset()
textgen.train_from_file(data_path, num_epochs=10,
gen_epochs=2, new_model=True,
word_level=True, rnn_bidirectional=True,
rnn_size=64, dim_embeddings=300)
결과
Segue alguns de letras desse feat de Calcinha Preta, Cavaleiros do Forró, Limão com Mel e Aviões do Forró.
Eu não preciso de você
O que eu sinto por ti
É por favor, me faz enlouquecer
Toda segunda a me entregar
Me diga, sem me deixar, ah
Eu vou te dar o que você quiser
Eu não consigo te esquecer
Eu quero ver você falar de mim
Já cansei de esperar
Acabou nosso amor
E agora eu sofro por você
Mas eu não consigo esquecer
Você é linda e eu mais
Pra mim e não quer mais saber
De verdade
Você não vai me dominar
Você não vai me dominar
Você não é dona de mim para me dominar
Não sei o que fazer
Com tanta dor
Você não pode entender
Como a força desse amor
Vem fazer amor
Me dar calor
Me deixa louca
E me chama de ti
Digo sim pro meu coração
Isso tinha tudo que eu quis
Eu sei que te amo
Se ligue pra mim
Que nao da mais te esquecer
Você não sabe o que é amor
Me diz como é complicado
Mas não se amar ninguém é segurar
Eu amo você
Eu te amo demais
Eu não posso ficar
Eu te avisei
Eu te chamo
Quando me diz o que eu faço
Se você me vê
Agora eu me apaixonei
Por você toda vida
Eu queria ouvir você dizer
Te amo, mas
Mentir pra mim
Ainda é te amo ninguém
Hoje eu te amo, amo, amo
Sei que eu te amo, amo, amo
Amo, amo, amo...
Você é o meu amor
Só você me faz sentir tão sozinha
E agora que há 100 anos de viver
Eu não te esqueci
Nem sei o que fazer
Você me faz sofrer
Não vou deixar você fugir
Mas eu não posso te perder
Não posso te amar
Eu sei que vou ficar sozinho olhando pra você
Tenho muito medo que eu te dou
E não quis assim
Me diz o que é que eu faço pra ter você
Menina eu confesso: eu te amo demais!
Alguns dos versos são 100% "originais", ou seja, em nenhuma das letras tem um verso exatamente igual. Algumas vezes ele gera de 1 a 3 versos exatamente iguais a de alguma música, em outras ele gera 1 verso e meio de uma música e completa com outra música diferente.
O que eu achei mais incrível é que com pouco treinamento ele já ser capaz de gerar versos e até mesmo estrofes com uma construção gramatical correta, original e com uma certa linha de contexto.
모든 코드는 다른 저장소를 활용합니다.
Vinicius / 가사 생성기
textgenrnn으로 가사 생성
Reference
이 문제에 관하여(Criando um gerador automático de Forró의 가사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/vnicius/criando-um-gerador-automatico-de-letras-de-forro-59h5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from textgenrnn import textgenrnn
textgen = textgenrnn(name="new_model")
textgen.reset()
textgen.train_from_file(data_path, num_epochs=10,
gen_epochs=2, new_model=True,
word_level=True, rnn_bidirectional=True,
rnn_size=64, dim_embeddings=300)
Segue alguns de letras desse feat de Calcinha Preta, Cavaleiros do Forró, Limão com Mel e Aviões do Forró.
Eu não preciso de você
O que eu sinto por ti
É por favor, me faz enlouquecer
Toda segunda a me entregar
Me diga, sem me deixar, ah
Eu vou te dar o que você quiser
Eu não consigo te esquecer
Eu quero ver você falar de mim
Já cansei de esperar
Acabou nosso amor
E agora eu sofro por você
Mas eu não consigo esquecer
Você é linda e eu mais
Pra mim e não quer mais saber
De verdade
Você não vai me dominar
Você não vai me dominar
Você não é dona de mim para me dominar
Não sei o que fazer
Com tanta dor
Você não pode entender
Como a força desse amor
Vem fazer amor
Me dar calor
Me deixa louca
E me chama de ti
Digo sim pro meu coração
Isso tinha tudo que eu quis
Eu sei que te amo
Se ligue pra mim
Que nao da mais te esquecer
Você não sabe o que é amor
Me diz como é complicado
Mas não se amar ninguém é segurar
Eu amo você
Eu te amo demais
Eu não posso ficar
Eu te avisei
Eu te chamo
Quando me diz o que eu faço
Se você me vê
Agora eu me apaixonei
Por você toda vida
Eu queria ouvir você dizer
Te amo, mas
Mentir pra mim
Ainda é te amo ninguém
Hoje eu te amo, amo, amo
Sei que eu te amo, amo, amo
Amo, amo, amo...
Você é o meu amor
Só você me faz sentir tão sozinha
E agora que há 100 anos de viver
Eu não te esqueci
Nem sei o que fazer
Você me faz sofrer
Não vou deixar você fugir
Mas eu não posso te perder
Não posso te amar
Eu sei que vou ficar sozinho olhando pra você
Tenho muito medo que eu te dou
E não quis assim
Me diz o que é que eu faço pra ter você
Menina eu confesso: eu te amo demais!
Alguns dos versos são 100% "originais", ou seja, em nenhuma das letras tem um verso exatamente igual. Algumas vezes ele gera de 1 a 3 versos exatamente iguais a de alguma música, em outras ele gera 1 verso e meio de uma música e completa com outra música diferente.
O que eu achei mais incrível é que com pouco treinamento ele já ser capaz de gerar versos e até mesmo estrofes com uma construção gramatical correta, original e com uma certa linha de contexto.
모든 코드는 다른 저장소를 활용합니다.
Vinicius / 가사 생성기
textgenrnn으로 가사 생성
Reference
이 문제에 관하여(Criando um gerador automático de Forró의 가사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vnicius/criando-um-gerador-automatico-de-letras-de-forro-59h5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)