{"id":20227,"date":"2026-10-20T18:42:01","date_gmt":"2026-10-20T21:42:01","guid":{"rendered":"https:\/\/musicasemsegredos.com\/?p=20227"},"modified":"2026-10-20T18:56:34","modified_gmt":"2026-10-20T21:56:34","slug":"como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab","status":"publish","type":"post","link":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/","title":{"rendered":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab"},"content":{"rendered":"\n<p class=\"has-drop-cap wp-block-paragraph\">De quem \u00e9 a m\u00fasica que voc\u00ea criou com intelig\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\u00ea paga, a vers\u00e3o dos termos de uso e at\u00e9 o m\u00eas em que voc\u00ea aceitou as regras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine a cena. Voc\u00ea passa uma tarde ajustando uma letra, escolhe o estilo, gera dez vers\u00f5es e, finalmente, uma delas emociona. Voc\u00ea baixa o arquivo, manda para um amigo e talvez use como trilha de um v\u00eddeo da sua escola de m\u00fasica. Seis meses depois, cancela a assinatura porque o or\u00e7amento apertou. O que acontece com aquela m\u00fasica? Voc\u00ea ainda pode us\u00e1-la? Pode monetizar? E quem decide isso?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste post eu mostro uma alternativa: gerar m\u00fasicas com um modelo de c\u00f3digo aberto, o <strong>YuE2-3B<\/strong>, rodando no Google Colab. Vamos conversar primeiro sobre direitos autorais e termos de uso, depois sobre o hardware necess\u00e1rio e, por fim, seguir o passo a passo com os c\u00f3digos prontos para copiar e colar. Open source, ou c\u00f3digo aberto, quer dizer que os arquivos do modelo e o c\u00f3digo para us\u00e1-lo est\u00e3o publicados e qualquer pessoa pode baix\u00e1-los e execut\u00e1-los por conta pr\u00f3pria, respeitando a licen\u00e7a.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Antes da primeira nota: o que voc\u00ea assina quando usa uma plataforma<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Plataformas como o Suno s\u00e3o pr\u00e1ticas: voc\u00ea escreve uma ideia, clica em um bot\u00e3o e minutos depois tem uma m\u00fasica completa. S\u00f3 que essa praticidade vem com um contrato, e vale ler as cl\u00e1usulas com a mesma aten\u00e7\u00e3o que dar\u00edamos ao contrato de uma gravadora.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em 2026, depois do acordo com a Warner Music Group, o Suno reescreveu partes dos seus termos. A linguagem que antes dizia que o assinante era dono das m\u00fasicas passou a dizer que ele pode receber <strong>direitos de uso comercial<\/strong>. A pr\u00f3pria empresa explica que, mesmo com esses direitos, o usu\u00e1rio em geral n\u00e3o \u00e9 considerado o propriet\u00e1rio da obra, porque o resultado foi gerado pela plataforma. Os termos tamb\u00e9m deixam claro que n\u00e3o h\u00e1 garantia de que algum direito autoral venha a existir sobre o que foi gerado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e1 outros pontos. M\u00fasicas criadas no plano gratuito servem apenas para uso n\u00e3o comercial e n\u00e3o podem ser monetizadas. Direitos retroativos podem ser concedidos em casos limitados, mas sem garantia. Novos termos entraram em vigor em 3 de setembro de 2026 e trouxeram limites de download: 7 downloads no total para o plano gratuito, 20 por m\u00eas no Pro e 60 por m\u00eas no Premier, valendo inclusive para m\u00fasicas criadas antes da mudan\u00e7a. E, segundo an\u00e1lises dos termos, o usu\u00e1rio concede \u00e0 plataforma uma licen\u00e7a ampla para usar o que envia e o que \u00e9 gerado para melhorar os modelos dela.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A empresa informa que, ao cancelar, a biblioteca continua na sua conta e que as m\u00fasicas baixadas como assinante mant\u00eam os direitos comerciais. Ent\u00e3o o problema n\u00e3o \u00e9 necessariamente o que est\u00e1 escrito hoje. O problema \u00e9 <strong>quem escreve as regras<\/strong>. Elas mudaram mais de uma vez em poucos meses, podem mudar de novo, e voc\u00ea, que depende da plataforma para acessar e baixar o seu material, n\u00e3o tem poder de negocia\u00e7\u00e3o nenhum. \u00c9 como compor num est\u00fadio que pode alterar o contrato depois da grava\u00e7\u00e3o. Por isso, confira sempre os termos vigentes: eles podem ter mudado desde que escrevi este texto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que muda com um modelo de c\u00f3digo aberto<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quando voc\u00ea roda um modelo aberto, a l\u00f3gica se inverte. Voc\u00ea baixa os arquivos do modelo, executa na m\u00e1quina que alugou e o resultado \u00e9 um arquivo de \u00e1udio que est\u00e1 nas suas m\u00e3os. N\u00e3o existe conta de assinante, n\u00e3o existe limite de downloads e n\u00e3o existe uma cl\u00e1usula de plataforma de m\u00fasica dizendo o que voc\u00ea pode ou n\u00e3o fazer com o resultado. Se o site de um servi\u00e7o fechar amanh\u00e3, o modelo que voc\u00ea baixou continua funcionando. \u00c9 a diferen\u00e7a entre assinar um servi\u00e7o de streaming e ter o seu pr\u00f3prio equipamento de grava\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mas aten\u00e7\u00e3o a um ponto que muita gente esquece: <strong>controle n\u00e3o \u00e9 o mesmo que liberdade total<\/strong>. O modelo tem a sua pr\u00f3pria licen\u00e7a. Os pesos do YuE2-3B (os \u201cpesos\u201d s\u00e3o os n\u00fameros aprendidos pelo modelo, ou seja, o conhecimento dele guardado em arquivo) s\u00e3o publicados sob a licen\u00e7a Creative Commons <strong>CC BY-NC 4.0<\/strong>, que permite uso n\u00e3o comercial e exige atribui\u00e7\u00e3o aos autores. O c\u00f3digo de infer\u00eancia que usamos para rodar o modelo \u00e9 Apache 2.0, bem mais permissivo, mas s\u00e3o os pesos que definem o que voc\u00ea pode fazer com a m\u00fasica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na pr\u00e1tica, isso \u00e9 \u00f3timo para estudo, ensino, demos, prot\u00f3tipos de arranjo, trilhas para projetos pessoais e experimentos. Se a inten\u00e7\u00e3o \u00e9 vender ou monetizar, leia a licen\u00e7a na p\u00e1gina oficial do modelo e, se poss\u00edvel, consulte um advogado especializado em direitos autorais. Eu n\u00e3o sou advogado e este texto n\u00e3o \u00e9 aconselhamento jur\u00eddico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existe ainda a quest\u00e3o da autoria. Em geral, a prote\u00e7\u00e3o por direito autoral est\u00e1 ligada \u00e0 cria\u00e7\u00e3o humana, inclusive na legisla\u00e7\u00e3o brasileira. Quanto mais da sua contribui\u00e7\u00e3o houver na obra, como a letra escrita por voc\u00ea, a estrutura, as escolhas de arranjo e, depois, a edi\u00e7\u00e3o e a mixagem, mais s\u00f3lida tende a ser a sua posi\u00e7\u00e3o. Use a IA como um m\u00fasico de est\u00fadio, e n\u00e3o como substituta do compositor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">E os dados usados no treinamento?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">H\u00e1 uma pergunta que ainda n\u00e3o tem resposta definitiva: as m\u00fasicas usadas para treinar esses modelos. Diversas disputas judiciais ao redor do mundo discutem se treinar uma IA com obras protegidas \u00e9 uso permitido, e acordos como o do Suno com a Warner mostram que o mercado est\u00e1 negociando as regras enquanto o jogo acontece. Isso vale para plataformas fechadas e para modelos abertos, e \u00e9 um ponto da legisla\u00e7\u00e3o que pode mudar nos pr\u00f3ximos anos. Por isso, acompanhe as not\u00edcias e guarde o registro de qual modelo e qual configura\u00e7\u00e3o voc\u00ea usou em cada faixa. O script que vamos usar salva os \u201cartefatos\u201d de cada gera\u00e7\u00e3o, o que ajuda nisso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No balan\u00e7o geral, ainda me parece melhor gerar a m\u00fasica com um modelo aberto, sob o seu controle: voc\u00ea sabe qual licen\u00e7a se aplica, escolhe a vers\u00e3o, guarda os seus arquivos e n\u00e3o depende de uma empresa manter as regras de hoje. \u00c9 uma decis\u00e3o de risco, e n\u00e3o uma garantia, e cada pessoa deve pesar a sua situa\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O obst\u00e1culo: a placa de v\u00eddeo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modelos de gera\u00e7\u00e3o de m\u00fasica fazem bilh\u00f5es de c\u00e1lculos ao mesmo tempo, e quem executa esse trabalho pesado \u00e9 a <strong>GPU<\/strong>, a placa de v\u00eddeo. Pense na CPU do computador como um excelente maestro que l\u00ea a partitura nota por nota, enquanto a GPU \u00e9 uma orquestra inteira tocando em paralelo. Para rodar o YuE2-3B na qualidade original, sem compress\u00e3o, a recomenda\u00e7\u00e3o \u00e9 uma placa com cerca de 24 GB de mem\u00f3ria de v\u00eddeo (a VRAM), que \u00e9 onde o modelo precisa caber enquanto trabalha. Existem vers\u00f5es quantizadas, isto \u00e9, compactadas com alguma perda de qualidade, que rodam em placas menores, mas a experi\u00eancia fica mais limitada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Placas com essa quantidade de mem\u00f3ria custam muitos milhares de reais, e no Brasil os impostos e o c\u00e2mbio empurram o pre\u00e7o ainda mais para cima. Para um m\u00fasico ou professor que s\u00f3 quer experimentar, comprar uma placa dessas \u00e9 como comprar um piano de cauda para descobrir se gosta de tocar. A sa\u00edda \u00e9 alugar o \u201cest\u00fadio\u201d por hora.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Google Colab: o est\u00fadio de ensaio alugado por hora<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O <strong>Google Colab<\/strong> (abrevia\u00e7\u00e3o de Colaboratory) \u00e9 um servi\u00e7o do Google que permite escrever e executar c\u00f3digo Python direto no navegador, em computadores da pr\u00f3pria empresa, incluindo m\u00e1quinas com GPU. Funciona como alugar uma sala de ensaio: voc\u00ea paga pelo tempo em que usa e, quando termina, devolve a sala.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O modelo de cobran\u00e7a mais interessante para o nosso caso \u00e9 o <em>pay as you go<\/em>, ou \u201cpague pelo que usar\u201d. Em vez de assinar um plano mensal, voc\u00ea compra <em>compute units<\/em>, as unidades de computa\u00e7\u00e3o, que s\u00e3o a moeda do Colab. Na \u00faltima consulta que fiz, o pre\u00e7o era de US$ 9,99 por 100 unidades, sem assinatura, e as unidades expiram 90 dias depois da compra, ou seja, tr\u00eas meses. Uma GPU A100 consome algo entre 10 e 15 unidades por hora, o que d\u00e1 de 7 a 10 horas de uso a cada 100 unidades, ou algo em torno de US$ 1 a US$ 1,50 por hora. Os valores s\u00e3o em d\u00f3lar, mudam com o tempo e podem variar por regi\u00e3o, ent\u00e3o confira a p\u00e1gina de pre\u00e7os do Colab antes de comprar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como cada m\u00fasica leva alguns minutos para ser gerada, 100 unidades rendem dezenas de gera\u00e7\u00f5es por uma fra\u00e7\u00e3o do pre\u00e7o de uma placa de v\u00eddeo. H\u00e1 dois cuidados. O primeiro \u00e9 que o Google n\u00e3o garante qual GPU voc\u00ea vai receber. O segundo \u00e9 que as unidades continuam sendo gastas enquanto a sess\u00e3o estiver aberta, mesmo que voc\u00ea n\u00e3o esteja gerando nada. Terminou? Encerre a sess\u00e3o em Ambiente de execu\u00e7\u00e3o &gt; Desconectar e excluir ambiente de execu\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O Colab \u00e9 Linux: como ativar a placa de v\u00eddeo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Por baixo da interface, o Colab roda o <strong>Linux<\/strong> (Ubuntu). Isso explica alguns detalhes dos c\u00f3digos: os comandos que come\u00e7am com ponto de exclama\u00e7\u00e3o (!) s\u00e3o enviados ao terminal do Linux, como o apt-get, que instala programas. J\u00e1 os que come\u00e7am com %%writefile gravam o conte\u00fado da c\u00e9lula em um arquivo. Uma c\u00e9lula \u00e9 cada bloco de c\u00f3digo do notebook, e voc\u00ea executa uma de cada vez clicando no bot\u00e3o de play ao lado dela.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de qualquer coisa, ative a placa de v\u00eddeo. A sugerida para este modelo \u00e9 a <strong>A100<\/strong>, que tem mem\u00f3ria de sobra para ele:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Acesse colab.research.google.com e crie um novo notebook.<\/li>\n\n\n\n<li>No menu, abra Ambiente de execu\u00e7\u00e3o &gt; Alterar tipo de ambiente de execu\u00e7\u00e3o.<\/li>\n\n\n\n<li>Em Acelerador de hardware, escolha a GPU A100.<\/li>\n\n\n\n<li>Salve e clique em Conectar.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Se a A100 n\u00e3o estiver dispon\u00edvel no momento, o Colab pode oferecer outra placa. Nesse caso, tente novamente mais tarde. O nosso script confere a GPU logo no in\u00edcio e avisa se nenhuma for encontrada.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como funcionam os c\u00f3digos em Python<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Todos os c\u00f3digos deste post est\u00e3o em <strong>Python<\/strong>, uma linguagem muito usada em intelig\u00eancia artificial e conhecida por ser leg\u00edvel, quase como ler uma receita. Voc\u00ea n\u00e3o precisa saber programar para us\u00e1-los: basta copiar, colar e alterar alguns textos, como o estilo e a letra.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O fluxo \u00e9 sempre o mesmo e lembra o trabalho em est\u00fadio. Primeiro carregamos o modelo na placa de v\u00eddeo, como ligar os equipamentos. Depois definimos o <strong>estilo<\/strong>, que \u00e9 o briefing para a banda (g\u00eanero, instrumentos, clima), e a <strong>letra<\/strong>, que traz tamb\u00e9m a estrutura da m\u00fasica, com marca\u00e7\u00f5es como [Verse] e [Chorus]. Em seguida mandamos gerar e, por fim, salvamos o \u00e1udio e os artefatos, que s\u00e3o os arquivos auxiliares do processo, incluindo o plano de melodia e acordes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dois par\u00e2metros merecem explica\u00e7\u00e3o. O primeiro \u00e9 o cot=&#8221;full&#8221;. A sigla vem de <em>chain of thought<\/em>, \u201ccadeia de racioc\u00ednio\u201d. Em vez de gerar o \u00e1udio de uma s\u00f3 vez, o modelo antes escreve um plano simb\u00f3lico da m\u00fasica, com melodia e acordes em nota\u00e7\u00e3o ABC (um formato de texto simples para escrever partituras) e s\u00f3 depois transforma esse plano em som. \u00c9 como um arranjador que rascunha a partitura antes de chamar os m\u00fasicos. Para covers, o modo recomendado \u00e9 o cot=&#8221;melody&#8221;. O segundo par\u00e2metro \u00e9 a <strong>seed<\/strong>, ou semente: o n\u00famero que inicia o sorteio interno do modelo. Com a mesma semente e os mesmos textos, voc\u00ea tende a obter o mesmo resultado, como repetir o mesmo take. Trocando a semente, nascem novas varia\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E por que usamos um venv? O YuE2 pede o Python 3.10, enquanto o Colab costuma vir com outra vers\u00e3o. A solu\u00e7\u00e3o \u00e9 criar um <strong>ambiente virtual<\/strong>, ou <em>venv<\/em>: uma pasta com o seu pr\u00f3prio Python e as suas pr\u00f3prias bibliotecas, isolada do resto do sistema. Pense numa cabine de grava\u00e7\u00e3o com isolamento ac\u00fastico, em que o que acontece l\u00e1 dentro n\u00e3o interfere no est\u00fadio ao lado. Por isso os scripts s\u00e3o executados com \/content\/yue2_env\/bin\/python e n\u00e3o com o Python padr\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passo 1: criar o ambiente com Python 3.10<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Na primeira c\u00e9lula instalamos o Python 3.10 com o apt-get, o gerenciador de programas do Ubuntu, e criamos o ambiente virtual na pasta \/content\/yue2_env. A execu\u00e7\u00e3o leva alguns minutos.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C\u00e9lula 1<\/h4>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># C\u00e9lula 1: Instalar o Python 3.10 e criar o ambiente virtual (venv)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">!sudo apt-get update -y<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">!sudo apt-get install -y python3.10 python3.10-dev python3.10-venv<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">!python3.10 -m venv \/content\/yue2_env<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passo 2: instalar o YuE2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A segunda c\u00e9lula atualiza o pip (o instalador de pacotes do Python), instala uma vers\u00e3o espec\u00edfica da biblioteca huggingface-hub, baixa o pacote de infer\u00eancia do YuE2 direto do reposit\u00f3rio oficial na Hugging Face e o instala dentro do venv. A Hugging Face \u00e9 uma esp\u00e9cie de \u201cGitHub dos modelos de IA\u201d, onde ficam publicados os arquivos do modelo. Os pesos, que ocupam alguns gigabytes, normalmente s\u00e3o baixados na primeira vez que o script carrega o modelo, ent\u00e3o a primeira execu\u00e7\u00e3o \u00e9 a mais demorada.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C\u00e9lula 2<\/h4>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># C\u00e9lula 2: Instalar o pacote de infer\u00eancia no ambiente criado<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">!\/content\/yue2_env\/bin\/python -m pip install &#8211;upgrade pip<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">!\/content\/yue2_env\/bin\/python -m pip install huggingface-hub==0.36.2<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">!\/content\/yue2_env\/bin\/hf download m-a-p\/YuE2-3B yue2_infer-0.1.5-py3-none-any.whl &#8211;local-dir .<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">!\/content\/yue2_env\/bin\/python -m pip install .\/yue2_infer-0.1.5-py3-none-any.whl<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passo 3: um teste r\u00e1pido com o exemplo oficial<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de personalizar, vale confirmar que tudo funciona usando o exemplo de demonstra\u00e7\u00e3o do pr\u00f3prio reposit\u00f3rio. O script abaixo baixa um pedido pronto (estilo, letra e seed) e gera a m\u00fasica. Se tudo correr bem, voc\u00ea ter\u00e1 o arquivo song.flac (o FLAC \u00e9 um formato de \u00e1udio sem perda de qualidade) ao lado do notebook.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C\u00e9lula 4<\/h4>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># C\u00e9lula 3: Criar o arquivo de teste com o exemplo oficial<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">%%writefile teste_demo.py<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">import json<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">from pathlib import Path<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">from huggingface_hub import hf_hub_download<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">from yue2 import YuE2Pipeline<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">print(&#8220;Carregando o YuE2Pipeline na GPU&#8230;&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">pipe = YuE2Pipeline.from_pretrained(&#8220;m-a-p\/YuE2-3B&#8221;, device=&#8221;cuda&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># Baixar o exemplo de demonstra\u00e7\u00e3o do reposit\u00f3rio<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">repo = &#8220;m-a-p\/YuE2-3B&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">prompt_path = hf_hub_download(repo, &#8220;examples\/tonight-awake.json&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">demo = json.loads(Path(prompt_path).read_text(encoding=&#8221;utf-8&#8243;))<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">style, lyrics = demo[&#8220;style&#8221;], demo[&#8220;lyrics&#8221;]<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">print(&#8220;Gerando a m\u00fasica&#8230;&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">song = pipe(style=style, lyrics=lyrics, cot=&#8221;full&#8221;, seed=demo[&#8220;seed&#8221;])<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># Salvar a m\u00fasica e os artefatos<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">song.save(&#8220;song.flac&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">song.save_artifacts(&#8220;outputs\/song&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">print(&#8220;Gera\u00e7\u00e3o conclu\u00edda! Arquivo salvo como &#8216;song.flac&#8217;.&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># C\u00e9lula 4: Executar o teste no Python 3.10 do venv<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">!\/content\/yue2_env\/bin\/python teste_demo.py<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passo 4: o script de gera\u00e7\u00e3o configur\u00e1vel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Este \u00e9 o script para o uso no dia a dia. Todas as op\u00e7\u00f5es ficam no bloco CONFIGURE AQUI, no come\u00e7o do arquivo, ent\u00e3o voc\u00ea s\u00f3 mexe nessa parte. Veja o que cada uma faz:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CAPTION<\/strong>: o estilo da m\u00fasica, com g\u00eanero, instrumentos e clima. Escreva em ingl\u00eas, como nos exemplos oficiais.<\/li>\n\n\n\n<li><strong>LYRICS<\/strong>: a letra, com marca\u00e7\u00f5es como [Verse 1] e [Chorus]. Escreva [Instrumental] para uma faixa sem voz.<\/li>\n\n\n\n<li><strong>VOCAL_LANGUAGE<\/strong>: o idioma do vocal. Use &#8220;pt&#8221; para portugu\u00eas.<\/li>\n\n\n\n<li><strong>DURATION<\/strong>: o modelo decide o tamanho da faixa, ent\u00e3o este valor apenas corta o \u00e1udio, com um fade-out de 1,5 segundo, caso ele passe do limite. Use -1 para n\u00e3o cortar.<\/li>\n\n\n\n<li><strong>BPM<\/strong> e <strong>KEYSCALE<\/strong>: andamento e tonalidade. Entram como texto no estilo, funcionando como um pedido e n\u00e3o como uma ordem r\u00edgida.<\/li>\n\n\n\n<li><strong>BATCH_SIZE<\/strong>: quantas varia\u00e7\u00f5es gerar em sequ\u00eancia.<\/li>\n\n\n\n<li><strong>AUDIO_FORMAT<\/strong>: o formato final do arquivo (wav, flac, mp3, opus, aac), convertido com o ffmpeg.<\/li>\n\n\n\n<li><strong>SEED<\/strong>: com -1, a semente \u00e9 sorteada a cada gera\u00e7\u00e3o. Com um n\u00famero fixo, o resultado tende a se repetir.<\/li>\n\n\n\n<li><strong>OUTPUT_DIR<\/strong>: a pasta onde os arquivos ser\u00e3o salvos.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">C\u00e9lula 5<\/h4>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># C\u00e9lula 5: Criar o script de gera\u00e7\u00e3o configur\u00e1vel<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">%%writefile \/content\/gerar_Musica.py<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">import os, sys, subprocess, inspect, time, random<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">from pathlib import Path<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># &#8212; 0. Garantir que roda dentro do ambiente virtual do YuE2 &#8212;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">VENV_DIR = &#8220;\/content\/yue2_env&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">VENV_PYTHON = f&#8221;{VENV_DIR}\/bin\/python&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">if os.path.exists(VENV_PYTHON) and os.path.realpath(sys.prefix) != os.path.realpath(VENV_DIR):<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; os.execv(VENV_PYTHON, [VENV_PYTHON] + sys.argv)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">try:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; import torch<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">except ImportError:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; torch = None<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># ===================== CONFIGURE AQUI =====================<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">CAPTION = &#8220;blues with piano, cello, double bass, sax and soft drums&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">LYRICS = &#8220;&#8221;&#8221;[Verse 1]<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">Caminhando pela rua hoje<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">Pensando nas palavras que voc\u00ea me disse<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">Tudo parece diferente agora<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">Mas eu vou encontrar meu caminho<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">[Chorus]<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">Eu sigo em frente, eu sigo forte<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">Esse \u00e9 o meu lugar<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&#8220;&#8221;&#8221;&nbsp; # ou escreva a letra; &#8220;[Instrumental]&#8221; = sem vocal<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">VOCAL_LANGUAGE = &#8220;pt&#8221;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # &#8220;en&#8221;, &#8220;pt&#8221;, &#8220;es&#8221;, &#8220;ja&#8221;&#8230; ou &#8220;unknown&#8221; (autom\u00e1tico)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">DURATION = 30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # segundos: corta a faixa nesse tamanho (com fade-out); -1 = n\u00e3o corta<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">BPM = 85&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # None = autom\u00e1tico<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">KEYSCALE = &#8220;A Major&#8221;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ex.: &#8220;C Major&#8221;; &#8220;&#8221; = autom\u00e1tico<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">BATCH_SIZE = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # quantas varia\u00e7\u00f5es gerar<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">AUDIO_FORMAT = &#8220;wav&#8221;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # flac, mp3, opus, aac, wav, wav32<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">SEED = -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # -1 = aleat\u00f3ria<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">USE_LM = True&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # True = planejamento completo de melodia e acordes (cot=&#8221;full&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">PROJECT_ROOT = &#8220;\/content\/YuE2&#8221;&nbsp;&nbsp; # s\u00f3 usado se existir: entra no sys.path<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">OUTPUT_DIR = &#8220;\/content\/musicas_geradas&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">CONFIG_OVERRIDE = None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ex.: &#8220;m-a-p\/YuE2-3B&#8221; (modelo principal)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">LM_OVERRIDE = None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # modelo de planejamento separado, se a pipeline aceitar<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># ==========================================================<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">DEFAULT_MODEL = &#8220;m-a-p\/YuE2-3B&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">def run(cmd):<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; subprocess.run(cmd, shell=True, check=True)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># &#8212; 1. GPU &#8212;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">if torch is not None:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; if not torch.cuda.is_available():<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sys.exit(&#8220;Nenhuma GPU encontrada. No Colab: Ambiente de execu\u00e7\u00e3o &gt; Alterar tipo &gt; GPU.&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; props = torch.cuda.get_device_properties(0)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; print(f&#8221;GPU: {props.name} | VRAM: {props.total_memory \/ 1024**3:.1f} GB&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">else:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; info = subprocess.run(&#8220;nvidia-smi &#8211;query-gpu=name,memory.total &#8211;format=csv,noheader&#8221;,<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shell=True, capture_output=True, text=True).stdout.strip()<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; if not info:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sys.exit(&#8220;Nenhuma GPU encontrada. No Colab: Ambiente de execu\u00e7\u00e3o &gt; Alterar tipo &gt; GPU.&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; print(f&#8221;GPU: {info}&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">model_id = CONFIG_OVERRIDE or DEFAULT_MODEL<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">print(f&#8221;Python: {sys.executable}&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">print(f&#8221;Modelo: {model_id} | planejamento (cot): {&#8216;ligado&#8217; if USE_LM else &#8216;desligado&#8217;}&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># &#8212; 2. Importar o YuE2 (instalado no venv) &#8212;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">if os.path.isdir(PROJECT_ROOT):<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; sys.path.insert(0, PROJECT_ROOT)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">try:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; from yue2 import YuE2Pipeline<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">except ImportError:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; sys.exit(&#8220;O m\u00f3dulo &#8216;yue2&#8217; n\u00e3o foi encontrado. Rode antes as c\u00e9lulas 1 e 2 &#8220;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;(criar o venv \/content\/yue2_env e instalar o yue2_infer) e tente de novo.&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">Path(OUTPUT_DIR).mkdir(parents=True, exist_ok=True)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># &#8212; 3. Carregar o modelo na GPU &#8212;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">print(&#8220;Carregando o YuE2Pipeline na GPU&#8230;&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">load_kwargs = {&#8220;device&#8221;: &#8220;cuda&#8221;}<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">if LM_OVERRIDE:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; if &#8220;lm_model&#8221; in inspect.signature(YuE2Pipeline.from_pretrained).parameters:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; load_kwargs[&#8220;lm_model&#8221;] = LM_OVERRIDE<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; else:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print(&#8220;Aviso: from_pretrained n\u00e3o aceita &#8216;lm_model&#8217;; LM_OVERRIDE ignorado.&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">pipe = YuE2Pipeline.from_pretrained(model_id, **load_kwargs)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># &#8212; 4. Montar estilo e letra &#8212;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">instrumental = LYRICS.strip().lower() in (&#8220;[instrumental]&#8221;, &#8220;&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">style_parts = [CAPTION.strip()]<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">if instrumental:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; style_parts += [&#8220;Instrumental&#8221;, &#8220;no vocals&#8221;]<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">if BPM:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; style_parts.append(f&#8221;{BPM} bpm&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">if KEYSCALE:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; style_parts.append(f&#8221;{KEYSCALE} key&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">if VOCAL_LANGUAGE and VOCAL_LANGUAGE.lower() != &#8220;unknown&#8221; and not instrumental:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; style_parts.append(f&#8221;{VOCAL_LANGUAGE} vocals&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">style = &#8220;. &#8220;.join(style_parts)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">lyrics = (&#8220;[Intro &#8211; instrumental]\\n\\n[verse &#8211; instrumental, no vocals]\\n\\n&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8220;[chorus &#8211; instrumental, no vocals]\\n\\n[outro &#8211; instrumental, final chord resolution]\\n&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if instrumental else LYRICS)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">print(f&#8221;Estilo final: {style}&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># &#8212; 5. P\u00f3s-processamento (formato e dura\u00e7\u00e3o) com ffmpeg &#8212;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">CODECS = {&nbsp; # formato: (extens\u00e3o, argumentos do ffmpeg)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; &#8220;wav&#8221;:&nbsp;&nbsp; (&#8220;wav&#8221;,&nbsp; &#8220;-c:a pcm_s16le&#8221;),<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; &#8220;wav32&#8221;: (&#8220;wav&#8221;,&nbsp; &#8220;-c:a pcm_f32le&#8221;),<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; &#8220;flac&#8221;:&nbsp; (&#8220;flac&#8221;, &#8220;-c:a flac&#8221;),<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; &#8220;mp3&#8221;:&nbsp;&nbsp; (&#8220;mp3&#8221;,&nbsp; &#8220;-c:a libmp3lame -q:a 2&#8221;),<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; &#8220;opus&#8221;:&nbsp; (&#8220;opus&#8221;, &#8220;-c:a libopus -b:a 128k&#8221;),<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; &#8220;aac&#8221;:&nbsp;&nbsp; (&#8220;aac&#8221;,&nbsp; &#8220;-c:a aac -b:a 192k&#8221;),<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">fmt = AUDIO_FORMAT.lower()<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">if fmt not in CODECS:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; sys.exit(f&#8221;AUDIO_FORMAT inv\u00e1lido: {AUDIO_FORMAT}. Use: {&#8216;, &#8216;.join(CODECS)}&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">ext, codec_args = CODECS[fmt]<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">def audio_length(path):<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; out = subprocess.run(<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f&#8217;ffprobe -v error -show_entries format=duration -of csv=p=0 &#8220;{path}&#8221;&#8216;,<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shell=True, capture_output=True, text=True).stdout.strip()<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; return float(out) if out else None<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">def convert(src, dst, max_seconds=None):<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; &#8220;&#8221;&#8221;Converte para o formato pedido e, se passar da dura\u00e7\u00e3o, corta com fade-out.&#8221;&#8221;&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; cut = &#8220;&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; length = audio_length(src)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; if max_seconds and length and length &gt; max_seconds + 0.5:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fade_start = max(max_seconds &#8211; 1.5, 0)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cut = f&#8217;-t {max_seconds} -af &#8220;afade=t=out:st={fade_start}:d=1.5&#8243;&#8216;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; run(f&#8217;ffmpeg -y -loglevel error -i &#8220;{src}&#8221; {cut} {codec_args} &#8220;{dst}&#8221;&#8216;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># &#8212; 6. Gerar (uma varia\u00e7\u00e3o por itera\u00e7\u00e3o) &#8212;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">stamp = time.strftime(&#8220;%Y%m%d_%H%M%S&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">saved = []<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">for i in range(BATCH_SIZE):<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; seed = random.randint(0, 2**31 &#8211; 1) if SEED == -1 else SEED + i<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; name = f&#8221;musica_{stamp}_v{i + 1}_seed{seed}&#8221;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; print(f&#8221;\\nGerando varia\u00e7\u00e3o {i + 1}\/{BATCH_SIZE} (seed {seed})&#8230;&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; t0 = time.time()<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; gen_kwargs = dict(style=style, lyrics=lyrics, seed=seed)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; if USE_LM:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gen_kwargs[&#8220;cot&#8221;] = &#8220;full&#8221;&nbsp;&nbsp; # planejamento completo de melodia e acordes<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; song = pipe(**gen_kwargs)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; raw = os.path.join(OUTPUT_DIR, f&#8221;{name}_raw.flac&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; song.save(raw)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; song.save_artifacts(os.path.join(OUTPUT_DIR, f&#8221;{name}_artefatos&#8221;))<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; final = os.path.join(OUTPUT_DIR, f&#8221;{name}.{ext}&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; convert(raw, final, max_seconds=DURATION if DURATION and DURATION &gt; 0 else None)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; if os.path.abspath(raw) != os.path.abspath(final):<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; os.remove(raw)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; saved.append(final)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; print(f&#8221;Varia\u00e7\u00e3o {i + 1} pronta em {time.time() &#8211; t0:.1f}s&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; if torch is not None:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; torch.cuda.empty_cache()<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># &#8212; 7. Resumo &#8212;<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">print(&#8220;\\nGera\u00e7\u00e3o conclu\u00edda! Arquivos de \u00e1udio:&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">for f in saved:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; print(&#8221;&nbsp; &#8220;, f)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">print(f&#8221;Artefatos (por varia\u00e7\u00e3o) em: {OUTPUT_DIR}\/*_artefatos&#8221;)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O restante do script cuida do trabalho de bastidor: confere se a GPU est\u00e1 ativa, garante que est\u00e1 rodando dentro do venv, monta o texto de estilo (acrescentando BPM, tonalidade e idioma), carrega o modelo, gera cada varia\u00e7\u00e3o, converte o \u00e1udio e imprime um resumo com o caminho dos arquivos. Cada varia\u00e7\u00e3o tamb\u00e9m ganha uma pasta de artefatos com o plano de melodia e acordes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passo 5: gerar e ouvir<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute a c\u00e9lula abaixo. A primeira execu\u00e7\u00e3o baixa o modelo e pode demorar, e as seguintes s\u00e3o mais r\u00e1pidas. Acompanhe a mensagem \u201cGerando varia\u00e7\u00e3o 1\/1\u201d e aguarde alguns minutos.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C\u00e9lula 6<\/h4>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># C\u00e9lula 6: Executar a gera\u00e7\u00e3o<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">!\/content\/yue2_env\/bin\/python \/content\/gerar_Musica.py<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando terminar, a c\u00e9lula a seguir toca as \u00faltimas m\u00fasicas geradas ali mesmo no notebook, sem precisar baixar nada.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C\u00e9lula 7<\/h4>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\"># C\u00e9lula 7: Para ouvir as \u00faltimas m\u00fasicas geradas<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">import glob, os<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">from IPython.display import Audio, display<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">exts = (&#8220;.wav&#8221;, &#8220;.flac&#8221;, &#8220;.mp3&#8221;, &#8220;.opus&#8221;, &#8220;.aac&#8221;)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">files = [f for f in glob.glob(&#8220;\/content\/musicas_geradas\/*&#8221;) if f.lower().endswith(exts)]<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">for f in sorted(files, key=os.path.getmtime)[-4:]:<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; print(f)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background has-small-font-size wp-block-paragraph\">&nbsp;&nbsp;&nbsp; display(Audio(f))<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se aparecer a mensagem de que nenhuma GPU foi encontrada, volte ao menu de Ambiente de execu\u00e7\u00e3o e confirme o acelerador escolhido. Se o aviso disser que o m\u00f3dulo yue2 n\u00e3o foi encontrado, execute novamente as c\u00e9lulas 1 e 2, pois o ambiente virtual desaparece quando a sess\u00e3o \u00e9 reiniciada. E lembre-se: cada gera\u00e7\u00e3o gasta unidades de computa\u00e7\u00e3o, ent\u00e3o teste primeiro com BATCH_SIZE = 1 e DURATION curta, e s\u00f3 depois gere em maior quantidade.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como escrever o estilo e a letra<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O c\u00f3digo \u00e9 s\u00f3 metade do trabalho. A outra metade \u00e9 escrever bons pedidos. Alguns princ\u00edpios que funcionam bem:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Estilo curto e espec\u00edfico:<\/strong> g\u00eanero, instrumentos, clima e andamento. Por exemplo: &#8220;blues with piano, cello, double bass, sax and soft drums&#8221;.<\/li>\n\n\n\n<li><strong>Estrutura clara:<\/strong> use se\u00e7\u00f5es como [Intro], [Verse], [Chorus] e [Outro], com linhas curtas e uma ideia por linha, pensando em como seriam cantadas.<\/li>\n\n\n\n<li><strong>Instrumental:<\/strong> com LYRICS = &#8220;[Instrumental]&#8221;, o script j\u00e1 acrescenta \u201cno vocals\u201d ao estilo e monta a estrutura sozinho.<\/li>\n\n\n\n<li><strong>Varia\u00e7\u00f5es:<\/strong> gere v\u00e1rias vers\u00f5es com sementes diferentes e escolha a melhor, como quem escolhe entre takes.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Para controlar a din\u00e2mica de uma faixa instrumental, voc\u00ea pode descrever o que acontece dentro de cada se\u00e7\u00e3o. Experimente colar o bloco abaixo no lugar de CAPTION, LYRICS e VOCAL_LANGUAGE do script. A mudan\u00e7a do idioma para &#8220;unknown&#8221; evita que o script acrescente \u201cpt vocals\u201d ao estilo de uma m\u00fasica que n\u00e3o tem voz.<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">CAPTION = &#8220;Orchestral instrumental in cinematic movie style, complete orchestra, strictly instrumental, clear production&#8221;<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">LYRICS = &#8220;&#8221;&#8221;[Intro &#8211; instrumental]<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">[instrumental &#8211; verse 1]<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">dynamics increasing until climax, starting with woodwind until full orchestra, strictly instrumental, no vocals<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">[instrumental &#8211; chorus]<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">strings, brass and timpani, with energy, strictly instrumental, no vocals<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">[instrumental &#8211; verse 2]<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">dynamics decreasing in volume, cello solo, strictly instrumental, no vocals<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">[instrumental &#8211; ending]<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">full orchestra, strictly instrumental, no vocals<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">&#8220;&#8221;&#8221;<\/p>\n\n\n\n<p class=\"has-light-pink-background-color has-background wp-block-paragraph\">VOCAL_LANGUAGE = &#8220;unknown&#8221;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Guarde suas m\u00fasicas antes de encerrar a sess\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tudo o que est\u00e1 na pasta \/content some quando a sess\u00e3o termina. Antes de desconectar, baixe os arquivos pelo painel de arquivos (o \u00edcone de pasta na lateral esquerda; clique nos tr\u00eas pontinhos ao lado do arquivo e escolha Fazer download). Outra op\u00e7\u00e3o \u00e9 montar o Google Drive com a c\u00e9lula abaixo, executada antes da gera\u00e7\u00e3o, e apontar o OUTPUT_DIR para uma pasta dentro de \/content\/drive\/MyDrive\/. O Drive vai pedir autoriza\u00e7\u00e3o da sua conta Google.<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background wp-block-paragraph\" style=\"font-size:15px\"># Opcional: monta o Google Drive para guardar as m\u00fasicas (tire o # das duas linhas)<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background wp-block-paragraph\" style=\"font-size:15px\">#from google.colab import drive<\/p>\n\n\n\n<p class=\"has-light-blue-background-color has-background wp-block-paragraph\" style=\"font-size:15px\">#drive.mount(&#8216;\/content\/drive&#8217;)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Gerar m\u00fasica com um modelo aberto exige um pouco mais de trabalho do que clicar num bot\u00e3o, mas devolve algo valioso: clareza sobre as regras do jogo. Voc\u00ea sabe qual licen\u00e7a se aplica, onde est\u00e3o os seus arquivos e quanto est\u00e1 pagando por hora de est\u00fadio. Lembre-se apenas de que os pesos do YuE2-3B s\u00e3o de uso n\u00e3o comercial e de que a discuss\u00e3o sobre os dados de treinamento segue em aberto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O YuE2 ainda permite fazer covers a partir de uma melodia em ABC, aplicar adaptadores LoRA para m\u00fasicas instrumentais e rodar tudo em uma interface gr\u00e1fica no ComfyUI. Esses s\u00e3o assuntos para os pr\u00f3ximos posts. E voc\u00ea, o que pretende criar primeiro: uma can\u00e7\u00e3o com letra pr\u00f3pria ou uma trilha instrumental? Conte nos coment\u00e1rios.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Para saber mais<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/huggingface.co\/M-A-P\/YuE2-3B\" target=\"_blank\" rel=\"noopener nofollow\">P\u00e1gina oficial do modelo YuE2-3B na Hugging Face<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/link.amazon\/B05sg9iDL\" target=\"_blank\" rel=\"noopener\">The Science of AI Music: A Beginner\u2019s Guide to AI Songwriting, Production &amp; Music Creation (English Edition)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/link.amazon\/B08DphY4x\" target=\"_blank\" rel=\"noopener\">AI Music Prompts: EDM: 1000+ Copy-Paste Prompts for Suno, Udio &amp; AI Music Generators: 4<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/suno.com\/blog\/suno-updates-tos\" target=\"_blank\" rel=\"noopener\">Suno: atualiza\u00e7\u00e3o da pol\u00edtica de downloads e dos Termos de Servi\u00e7o<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/colab.research.google.com\/signup\" target=\"_blank\" rel=\"noopener nofollow\">Google Colab: planos e pre\u00e7os<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/colab.research.google.com\" target=\"_blank\" rel=\"noopener nofollow\">Google Colab<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>De quem \u00e9 a m\u00fasica que voc\u00ea criou com intelig\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\u00ea paga, a vers\u00e3o dos termos de uso e at\u00e9 o m\u00eas em que voc\u00ea aceitou as regras. Imagine a cena. Voc\u00ea passa uma tarde ajustando uma letra, escolhe o estilo, &hellip; <a href=\"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/\" class=\"more-link\">Continuar lendo <span class=\"screen-reader-text\">Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":20230,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[615],"tags":[],"class_list":["post-20227","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-musica"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"De quem \u00e9 a m\u00fasica que voc\u00ea criou com intelig\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\u00ea paga, a vers\u00e3o dos termos de uso e at\u00e9 o m\u00eas em que voc\u00ea aceitou as regras. Imagine a cena. Voc\u00ea passa uma tarde ajustando uma letra, escolhe o estilo,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"nevesf\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"M\u00fasica sem Segredos - Musica para todos\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab - M\u00fasica sem Segredos\" \/>\n\t\t<meta property=\"og:description\" content=\"De quem \u00e9 a m\u00fasica que voc\u00ea criou com intelig\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\u00ea paga, a vers\u00e3o dos termos de uso e at\u00e9 o m\u00eas em que voc\u00ea aceitou as regras. Imagine a cena. Voc\u00ea passa uma tarde ajustando uma letra, escolhe o estilo,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/cropped-cropped-MusicaSemSegredos512x512.jpg?fit=248248&#038;ssl=1\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/cropped-cropped-MusicaSemSegredos512x512.jpg?fit=248248&#038;ssl=1\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-10-20T21:42:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-10-20T21:56:34+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab - M\u00fasica sem Segredos\" \/>\n\t\t<meta name=\"twitter:description\" content=\"De quem \u00e9 a m\u00fasica que voc\u00ea criou com intelig\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\u00ea paga, a vers\u00e3o dos termos de uso e at\u00e9 o m\u00eas em que voc\u00ea aceitou as regras. Imagine a cena. Voc\u00ea passa uma tarde ajustando uma letra, escolhe o estilo,\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/cropped-cropped-MusicaSemSegredos512x512.jpg?fit=248248&amp;ssl=1\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#blogposting\",\"name\":\"Como gerar m\\u00fasicas com o modelo open source YuE2-3B no Google Colab - M\\u00fasica sem Segredos\",\"headline\":\"Como gerar m\\u00fasicas com o modelo open source YuE2-3B no Google Colab\",\"author\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/author\\\/nevesf\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/musicasemsegredos.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Vinyl_record_with_binary_code_20261020182609.jpg?fit=1376%2C768&ssl=1\",\"width\":1376,\"height\":768,\"caption\":\"Musica com IA\"},\"datePublished\":\"2026-10-20T18:42:01-03:00\",\"dateModified\":\"2026-10-20T18:56:34-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#webpage\"},\"articleSection\":\"musica\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/musicasemsegredos.com\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/category\\\/musica\\\/#listItem\",\"name\":\"musica\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/category\\\/musica\\\/#listItem\",\"position\":2,\"name\":\"musica\",\"item\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/category\\\/musica\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#listItem\",\"name\":\"Como gerar m\\u00fasicas com o modelo open source YuE2-3B no Google Colab\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#listItem\",\"position\":3,\"name\":\"Como gerar m\\u00fasicas com o modelo open source YuE2-3B no Google Colab\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/category\\\/musica\\\/#listItem\",\"name\":\"musica\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/#organization\",\"name\":\"M\\u00fasica sem Segredos\",\"description\":\"Musica para todos\",\"url\":\"https:\\\/\\\/musicasemsegredos.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/musicasemsegredos.com\\\/wp-content\\\/uploads\\\/2017\\\/01\\\/cropped-cropped-MusicaSemSegredos512x512.jpg?fit=248%2C248&ssl=1\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#organizationLogo\",\"width\":248,\"height\":248},\"image\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/author\\\/nevesf\\\/#author\",\"url\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/author\\\/nevesf\\\/\",\"name\":\"nevesf\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/40a180061deabb68d04bd9f812bde2b372b5d57984baf7dd947ee866377d90fb?s=96&d=blank&r=g\",\"width\":96,\"height\":96,\"caption\":\"nevesf\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#webpage\",\"url\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/\",\"name\":\"Como gerar m\\u00fasicas com o modelo open source YuE2-3B no Google Colab - M\\u00fasica sem Segredos\",\"description\":\"De quem \\u00e9 a m\\u00fasica que voc\\u00ea criou com intelig\\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\\u00ea paga, a vers\\u00e3o dos termos de uso e at\\u00e9 o m\\u00eas em que voc\\u00ea aceitou as regras. Imagine a cena. Voc\\u00ea passa uma tarde ajustando uma letra, escolhe o estilo,\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/author\\\/nevesf\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/author\\\/nevesf\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/musicasemsegredos.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Vinyl_record_with_binary_code_20261020182609.jpg?fit=1376%2C768&ssl=1\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#mainImage\",\"width\":1376,\"height\":768,\"caption\":\"Musica com IA\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/index.php\\\/2026\\\/10\\\/20\\\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\\\/#mainImage\"},\"datePublished\":\"2026-10-20T18:42:01-03:00\",\"dateModified\":\"2026-10-20T18:56:34-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/#website\",\"url\":\"https:\\\/\\\/musicasemsegredos.com\\\/\",\"name\":\"M\\u00fasica sem Segredos\",\"description\":\"Musica para todos\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/musicasemsegredos.com\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab - M\u00fasica sem Segredos","description":"De quem \u00e9 a m\u00fasica que voc\u00ea criou com intelig\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\u00ea paga, a vers\u00e3o dos termos de uso e at\u00e9 o m\u00eas em que voc\u00ea aceitou as regras. Imagine a cena. Voc\u00ea passa uma tarde ajustando uma letra, escolhe o estilo,","canonical_url":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#blogposting","name":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab - M\u00fasica sem Segredos","headline":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab","author":{"@id":"https:\/\/musicasemsegredos.com\/index.php\/author\/nevesf\/#author"},"publisher":{"@id":"https:\/\/musicasemsegredos.com\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2026\/10\/Vinyl_record_with_binary_code_20261020182609.jpg?fit=1376%2C768&ssl=1","width":1376,"height":768,"caption":"Musica com IA"},"datePublished":"2026-10-20T18:42:01-03:00","dateModified":"2026-10-20T18:56:34-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#webpage"},"isPartOf":{"@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#webpage"},"articleSection":"musica"},{"@type":"BreadcrumbList","@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/musicasemsegredos.com\/#listItem","position":1,"name":"Home","item":"https:\/\/musicasemsegredos.com\/","nextItem":{"@type":"ListItem","@id":"https:\/\/musicasemsegredos.com\/index.php\/category\/musica\/#listItem","name":"musica"}},{"@type":"ListItem","@id":"https:\/\/musicasemsegredos.com\/index.php\/category\/musica\/#listItem","position":2,"name":"musica","item":"https:\/\/musicasemsegredos.com\/index.php\/category\/musica\/","nextItem":{"@type":"ListItem","@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#listItem","name":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab"},"previousItem":{"@type":"ListItem","@id":"https:\/\/musicasemsegredos.com\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#listItem","position":3,"name":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab","previousItem":{"@type":"ListItem","@id":"https:\/\/musicasemsegredos.com\/index.php\/category\/musica\/#listItem","name":"musica"}}]},{"@type":"Organization","@id":"https:\/\/musicasemsegredos.com\/#organization","name":"M\u00fasica sem Segredos","description":"Musica para todos","url":"https:\/\/musicasemsegredos.com\/","logo":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/cropped-cropped-MusicaSemSegredos512x512.jpg?fit=248%2C248&ssl=1","@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#organizationLogo","width":248,"height":248},"image":{"@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/musicasemsegredos.com\/index.php\/author\/nevesf\/#author","url":"https:\/\/musicasemsegredos.com\/index.php\/author\/nevesf\/","name":"nevesf","image":{"@type":"ImageObject","@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/40a180061deabb68d04bd9f812bde2b372b5d57984baf7dd947ee866377d90fb?s=96&d=blank&r=g","width":96,"height":96,"caption":"nevesf"}},{"@type":"WebPage","@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#webpage","url":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/","name":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab - M\u00fasica sem Segredos","description":"De quem \u00e9 a m\u00fasica que voc\u00ea criou com intelig\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\u00ea paga, a vers\u00e3o dos termos de uso e at\u00e9 o m\u00eas em que voc\u00ea aceitou as regras. Imagine a cena. Voc\u00ea passa uma tarde ajustando uma letra, escolhe o estilo,","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/musicasemsegredos.com\/#website"},"breadcrumb":{"@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#breadcrumblist"},"author":{"@id":"https:\/\/musicasemsegredos.com\/index.php\/author\/nevesf\/#author"},"creator":{"@id":"https:\/\/musicasemsegredos.com\/index.php\/author\/nevesf\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2026\/10\/Vinyl_record_with_binary_code_20261020182609.jpg?fit=1376%2C768&ssl=1","@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#mainImage","width":1376,"height":768,"caption":"Musica com IA"},"primaryImageOfPage":{"@id":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/#mainImage"},"datePublished":"2026-10-20T18:42:01-03:00","dateModified":"2026-10-20T18:56:34-03:00"},{"@type":"WebSite","@id":"https:\/\/musicasemsegredos.com\/#website","url":"https:\/\/musicasemsegredos.com\/","name":"M\u00fasica sem Segredos","description":"Musica para todos","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/musicasemsegredos.com\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"M\u00fasica sem Segredos - Musica para todos","og:type":"article","og:title":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab - M\u00fasica sem Segredos","og:description":"De quem \u00e9 a m\u00fasica que voc\u00ea criou com intelig\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\u00ea paga, a vers\u00e3o dos termos de uso e at\u00e9 o m\u00eas em que voc\u00ea aceitou as regras. Imagine a cena. Voc\u00ea passa uma tarde ajustando uma letra, escolhe o estilo,","og:url":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/","og:image":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/cropped-cropped-MusicaSemSegredos512x512.jpg?fit=248248&#038;ssl=1","og:image:secure_url":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/cropped-cropped-MusicaSemSegredos512x512.jpg?fit=248248&#038;ssl=1","article:published_time":"2026-10-20T21:42:01+00:00","article:modified_time":"2026-10-20T21:56:34+00:00","twitter:card":"summary_large_image","twitter:title":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab - M\u00fasica sem Segredos","twitter:description":"De quem \u00e9 a m\u00fasica que voc\u00ea criou com intelig\u00eancia artificial? A pergunta parece simples, mas a resposta pode mudar conforme o plano que voc\u00ea paga, a vers\u00e3o dos termos de uso e at\u00e9 o m\u00eas em que voc\u00ea aceitou as regras. Imagine a cena. Voc\u00ea passa uma tarde ajustando uma letra, escolhe o estilo,","twitter:image":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/cropped-cropped-MusicaSemSegredos512x512.jpg?fit=248248&ssl=1"},"aioseo_meta_data":{"post_id":"20227","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-10-20 18:24:35","updated":"2026-10-21 04:21:23"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/musicasemsegredos.com\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/musicasemsegredos.com\/index.php\/category\/musica\/\" title=\"musica\">musica<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tComo gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/musicasemsegredos.com\/"},{"label":"musica","link":"https:\/\/musicasemsegredos.com\/index.php\/category\/musica\/"},{"label":"Como gerar m\u00fasicas com o modelo open source YuE2-3B no Google Colab","link":"https:\/\/musicasemsegredos.com\/index.php\/2026\/10\/20\/como-gerar-musicas-com-o-modelo-open-source-yue2-3b-no-google-colab\/"}],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8f7pv-5gf","jetpack-related-posts":[{"id":1356,"url":"https:\/\/musicasemsegredos.com\/index.php\/2018\/04\/01\/como-aprender-a-improvisar\/","url_meta":{"origin":20227,"position":0},"title":"Como aprender a improvisar","author":"nevesf","date":"01\/04\/2018","format":false,"excerpt":"Talvez voc\u00ea j\u00e1 se tenha perguntado: Como aprender a improvisar? A resposta a esta pergunta pode variar bastante, mas o que na minha opini\u00e3o mais reflete a realidade \u00e9: da mesma forma que voc\u00ea aprendeu a falar. Vamos pensar em como aprendemos uma outra l\u00edngua, ou como a crian\u00e7a aprende\u2026","rel":"","context":"Em &quot;Partituras&quot;","block_context":{"text":"Partituras","link":"https:\/\/musicasemsegredos.com\/index.php\/category\/partituras\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2018\/03\/IMG_4125-1.jpg?fit=1200%2C900&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2018\/03\/IMG_4125-1.jpg?fit=1200%2C900&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2018\/03\/IMG_4125-1.jpg?fit=1200%2C900&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2018\/03\/IMG_4125-1.jpg?fit=1200%2C900&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2018\/03\/IMG_4125-1.jpg?fit=1200%2C900&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":18129,"url":"https:\/\/musicasemsegredos.com\/index.php\/2019\/04\/04\/inteligencia-artificial-impacta-o-mercado-da-musica\/","url_meta":{"origin":20227,"position":1},"title":"Intelig\u00eancia Artificial impacta o mercado da m\u00fasica","author":"nevesf","date":"04\/04\/2019","format":false,"excerpt":"A Inova\u00e7\u00e3o Tecnol\u00f3gica Cada vez mais a inova\u00e7\u00e3o tecnol\u00f3gica afeta os mais diferentes neg\u00f3cios incluido o mercado musical. Se no passado a utiliza\u00e7\u00e3o de harmoniza\u00e7\u00f5es computadorizadas causaram discuss\u00f5es e resist\u00eancias por parte dos mais tradicionais, \u00a0ao mesmo tempo criou novas oportunidades para aqueles que abra\u00e7aram a nova tecnologia. A ind\u00fastria\u2026","rel":"","context":"Em &quot;Harmonia&quot;","block_context":{"text":"Harmonia","link":"https:\/\/musicasemsegredos.com\/index.php\/category\/harmonia\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2019\/04\/musicAI.001.jpeg?fit=1024%2C768&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2019\/04\/musicAI.001.jpeg?fit=1024%2C768&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2019\/04\/musicAI.001.jpeg?fit=1024%2C768&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2019\/04\/musicAI.001.jpeg?fit=1024%2C768&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":18412,"url":"https:\/\/musicasemsegredos.com\/index.php\/2019\/11\/13\/7-fontes-de-conteudo-de-qualidade-para-aprender-musica\/","url_meta":{"origin":20227,"position":2},"title":"7 Fontes de conte\u00fado de Qualidade para aprender M\u00fasica","author":"nevesf","date":"13\/11\/2019","format":false,"excerpt":"Em tempos de internet \u00e9 realmente dif\u00edcil encontrar conte\u00fado de qualidade. Quando falamos sobre aprender m\u00fasica, \u00e9 muito dif\u00edcil para um iniciante saber se um determinado v\u00eddeo que ele est\u00e1 assistindo no You Tube realmente traz a informa\u00e7\u00e3o correta ou n\u00e3o. Mas como separar o joio do trigo? Como usar\u2026","rel":"","context":"Em &quot;cursos&quot;","block_context":{"text":"cursos","link":"https:\/\/musicasemsegredos.com\/index.php\/category\/cursos\/"},"img":{"alt_text":"Conteudo de qualidade sobre musica","src":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2019\/11\/school-1063561_640.jpg?fit=640%2C472&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2019\/11\/school-1063561_640.jpg?fit=640%2C472&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2019\/11\/school-1063561_640.jpg?fit=640%2C472&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":19621,"url":"https:\/\/musicasemsegredos.com\/index.php\/2023\/09\/05\/como-criar-e-vender-partituras-de-arranjos-musicais-de-sucesso-na-internet\/","url_meta":{"origin":20227,"position":3},"title":"Como criar e vender partituras de arranjos musicais de sucesso na internet.","author":"nevesf","date":"05\/09\/2023","format":false,"excerpt":"Sabe aquele arranjo que voc\u00ea escreveu para usa banda e ainda est\u00e1 guardado no HD do computador? Ent\u00e3o, voc\u00ea sabia que pode vend\u00ea-lo e a ainda fazer uma graninha extra? Ou de repente, at\u00e9 pode ser um neg\u00f3cio de gente grande. Quer saber como? Fica comigo neste post e voc\u00ea\u2026","rel":"","context":"Em &quot;Mercado fonogr\u00e1fico&quot;","block_context":{"text":"Mercado fonogr\u00e1fico","link":"https:\/\/musicasemsegredos.com\/index.php\/category\/mercado\/"},"img":{"alt_text":"venda de partituras online","src":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2023\/09\/sheet-music-4121936_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2023\/09\/sheet-music-4121936_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2023\/09\/sheet-music-4121936_1280.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2023\/09\/sheet-music-4121936_1280.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2023\/09\/sheet-music-4121936_1280.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":328,"url":"https:\/\/musicasemsegredos.com\/index.php\/2017\/01\/24\/328\/","url_meta":{"origin":20227,"position":4},"title":"Sua M\u00fasica na Apple Store","author":"nevesf","date":"24\/01\/2017","format":false,"excerpt":"Voc\u00ea j\u00e1 pensou em ter sua m\u00fasica na Apple Music? Ou melhor, em todas as plataformas de streaming como Spotify, You Tube Red, Google Play e muitos outros e ainda contar com divulga\u00e7\u00e3o no Facebook?\u00a0 Isso \u00e9 mais simples do que parece. Empresas Se voc\u00ea tentar publicar seu \u00e1lbum direto\u2026","rel":"","context":"Em &quot;Mercado fonogr\u00e1fico&quot;","block_context":{"text":"Mercado fonogr\u00e1fico","link":"https:\/\/musicasemsegredos.com\/index.php\/category\/mercado\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/apple-music.jpg?fit=807%2C453&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/apple-music.jpg?fit=807%2C453&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/apple-music.jpg?fit=807%2C453&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2017\/01\/apple-music.jpg?fit=807%2C453&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":19744,"url":"https:\/\/musicasemsegredos.com\/index.php\/2024\/01\/11\/faca-sua-partitura-com-notas-musicais-coloridas\/","url_meta":{"origin":20227,"position":5},"title":"Fa\u00e7a sua Partitura com Notas Musicais Coloridas","author":"nevesf","date":"11\/01\/2024","format":false,"excerpt":"Ol\u00e1 Professor de m\u00fasica! Se voc\u00ea usa cores para ensinar seus alunos iniciantes este post \u00e9 pra voc\u00ea. O uso de cores nas notas musicais pode ser uma ferramenta \u00fatil para ajudar alunos iniciantes de m\u00fasica a aprender a ler partituras. A associa\u00e7\u00e3o de cores com notas pode ajudar a\u2026","rel":"","context":"Em &quot;educacao&quot;","block_context":{"text":"educacao","link":"https:\/\/musicasemsegredos.com\/index.php\/category\/educacao\/"},"img":{"alt_text":"Notas Musicais com cores na partitura","src":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2024\/01\/CoresNotas-1.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2024\/01\/CoresNotas-1.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2024\/01\/CoresNotas-1.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2024\/01\/CoresNotas-1.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2024\/01\/CoresNotas-1.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/musicasemsegredos.com\/wp-content\/uploads\/2026\/10\/Vinyl_record_with_binary_code_20261020182609.jpg?fit=1376%2C768&ssl=1","_links":{"self":[{"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/posts\/20227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/comments?post=20227"}],"version-history":[{"count":11,"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/posts\/20227\/revisions"}],"predecessor-version":[{"id":20241,"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/posts\/20227\/revisions\/20241"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/media\/20230"}],"wp:attachment":[{"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/media?parent=20227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/categories?post=20227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/musicasemsegredos.com\/index.php\/wp-json\/wp\/v2\/tags?post=20227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}