Skip to content

Commit

Permalink
Merge pull request #80 from ValchanOficial/feat/post-about-music-gene…
Browse files Browse the repository at this point in the history
…ration-with-ai

feat: added post about music generation with ai
  • Loading branch information
ValchanOficial authored Dec 12, 2024
2 parents 519ecde + 365289b commit 125540c
Showing 1 changed file with 89 additions and 0 deletions.
89 changes: 89 additions & 0 deletions posts/2024-12-11-music-generation-with-ai.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
date: 2024-12-11
title: "Gerando música com inteligência artificial"
description: "Projeto feito na plataforma da Educative.io"
category: "AI"
image: "/assets/img/cover.png"
---

Ultimamente venho buscando aprofundar meus conhecimentos sobre inteligência artificial e recentemente, fiz o projeto de geração de música utilizando a AI na plataforma Educative.io. Foi um projeto bastante interessante, nele usei o framework AudioCraft da MetaAI para gerar músicas de diversos gêneros!

### Informações

- **torchaudio**: Esta biblioteca será utilizada para processamento de áudio;
- **audiocraft**: Esta biblioteca fornecerá modelos de geração de música;
- **MusicGen**: Este modelo gerará música conforme o prompt fornecido;
- **Audio**: Este módulo exibirá a saída de áudio;
- **Textarea**: Este módulo será utilizado para exibir uma área de texto semelhante ao HTML;
- **Button**: Este módulo será utilizado para exibir um botão semelhante ao HTML.

### Veja o que podemos fazer com poucas linhas de código!

Em um arquivo.ipynb:

- Primeiro, faço a importação das bibliotecas e módulos necessários

```python
import torchaudio
import audiocraft
from audiocraft.models import MusicGen
from IPython.display import Audio
from ipywidgets import Textarea
from ipywidgets import Button
```

- Em seguida, carrego um modelo pré-treinado para geração de música
- Modelos disponíveis: https://github.com/facebookresearch/audiocraft/blob/main/docs/MUSICGEN.md#api

```python
model = MusicGen.get_pretrained('facebook/musicgen-small')
```

- Defino a duração da música a ser gerada

```python
model.set_generation_params(duration=8)
```

- Crio uma área de texto para a informar o prompt da música

```python
description = Textarea(value='', placeholder='Give a music prompt', disabled=False, rows=4)
```

- Adiciono um botão para gerar a música

```python
generate_button = Button(description="Generate Tune")
```

- Crio a função de geração de música

```python
def generate_tune(event):
# Gero a música com base no prompt fornecido
results = model.generate([description.value])
# Obtenho a taxa de amostragem do modelo (em Hz)
sampling_rate = model.sample_rate
# Exibo a saída de áudio
display(Audio(results[0].cpu().numpy(), rate=sampling_rate))
```

- Conecto o evento de clique do botão à função de geração de música

```python
generate_button.on_click(generate_tune)
```

- Deixo exibindo a área de texto e o botão

```python
display(description)
display(generate_button)
```

**_Fontes:_**

- <a href="https://www.educative.io/projects/generating-new-music-with-artificial-intelligence" target="_blank" rel="noopener noreferrer">Generating New Music with Artificial Intelligence</a>

- <a href="https://github.com/facebookresearch/audiocraft?tab=readme-ov-file#audiocraft" target="_blank" rel="noopener noreferrer">MetaAI - AudioCraft</a>

0 comments on commit 125540c

Please sign in to comment.