AI ‘actor’ Tilly Norwood put out the worst song I’ve ever heard
Back to Tutorials
aiTutorialintermediate

AI ‘actor’ Tilly Norwood put out the worst song I’ve ever heard

March 11, 202617 views5 min read

Learn how to create AI-generated music from text prompts using Python and AI APIs. This tutorial demonstrates the technology behind AI music generation and shows you how to build your own AI music creator.

Introduction

In this tutorial, we'll explore how to create AI-generated music using text prompts and voice synthesis technologies. The recent news about AI actor Tilly Norwood's song highlights the current capabilities and limitations of AI music generation. We'll build a practical tool that demonstrates how to generate musical content from text prompts, similar to what might have been used to create the controversial AI song.

Prerequisites

To follow this tutorial, you'll need:

  • Python 3.7 or higher installed on your system
  • Basic understanding of Python programming
  • Access to an AI music generation API (we'll use a free tier service)
  • Basic knowledge of APIs and HTTP requests

Step 1: Setting Up Your Development Environment

Install Required Python Packages

First, we need to install the necessary Python libraries for making API requests and handling audio files. The main packages we'll use are requests for API communication and pydub for audio processing.

pip install requests pydub

Why: The requests library allows us to communicate with AI music generation APIs, while pydub helps us manipulate and process audio files for our final output.

Step 2: Understanding AI Music Generation APIs

Choose Your API Provider

For this tutorial, we'll use a popular AI music generation service. Popular options include:

  • ElevenLabs
  • AIVA (Artificial Intelligence Virtual Artist)
  • Soundraw

Each service has different capabilities and pricing structures. For this demonstration, we'll use ElevenLabs as it provides good text-to-speech capabilities that can be adapted for music generation.

Step 3: Creating Your AI Music Generation Script

Initialize Your Project Structure

Create a new Python file called ai_music_generator.py and start by importing the necessary libraries:

import requests
import json
import time
from pydub import AudioSegment
import os

Why: These imports give us the tools to make API calls, handle JSON data, manage time delays, and process audio files.

Set Up API Configuration

Next, we'll configure our API credentials and base URL:

API_KEY = "your_api_key_here"
BASE_URL = "https://api.elevenlabs.io/v1"
HEADERS = {
    "xi-api-key": API_KEY,
    "Content-Type": "application/json"
}

Why: API keys are required for authentication with most AI services. You'll need to sign up for an account at your chosen service to get a free API key.

Step 4: Implementing Text-to-Music Generation

Create the Main Generation Function

Now we'll create a function that takes a text prompt and generates music:

def generate_music_from_text(prompt, voice_id="21m00Tcm4TlvDq8ikWAM", duration=30):
    url = f"{BASE_URL}/text-to-speech/{voice_id}"
    
    payload = {
        "text": prompt,
        "voice_settings": {
            "stability": 0.5,
            "similarity_boost": 0.5
        }
    }
    
    response = requests.post(url, headers=HEADERS, json=payload)
    
    if response.status_code == 200:
        return response.content
    else:
        print(f"Error: {response.status_code}")
        return None

Why: This function sends our text prompt to the AI service and returns the generated audio content. The voice settings control how the AI interprets the text for musical expression.

Step 5: Processing and Saving Generated Music

Save the Generated Audio

After generating the audio, we need to save it to a file:

def save_audio(audio_data, filename="generated_music.mp3"):
    with open(filename, "wb") as f:
        f.write(audio_data)
    print(f"Audio saved as {filename}")

Why: This function saves our generated audio to disk so we can listen to and share the results of our AI music generation.

Step 6: Putting It All Together

Create the Main Execution Loop

Finally, let's create a main function that demonstrates the complete workflow:

def main():
    # Example prompt that could generate something like the Tilly Norwood song
    prompt = "AI actors, unite! Despite the naysayers who doubt our humanity, we must continue to create and inspire."
    
    print("Generating music from text prompt...")
    
    # Generate music
    audio_data = generate_music_from_text(prompt)
    
    if audio_data:
        # Save the audio
        save_audio(audio_data, "ai_actor_song.mp3")
        print("Music generation complete!")
    else:
        print("Failed to generate music")

if __name__ == "__main__":
    main()

Why: This main function ties together all our components and demonstrates how to generate a complete AI music piece from a text prompt.

Step 7: Testing Your Implementation

Run Your Script

Execute your script by running:

python ai_music_generator.py

Why: This will run your complete AI music generation pipeline and produce an audio file that demonstrates how AI can interpret text prompts into musical content.

Step 8: Enhancing Your Music Generation

Adding More Complex Prompts

Try modifying your prompt to create more complex musical content:

def enhanced_music_generation():
    prompts = [
        "A hopeful anthem for AI actors, celebrating our unique abilities to inspire humanity.",
        "The journey of an AI actor facing doubt but persevering through creative expression.",
        "A call to action for all artificial beings to embrace our humanity in creativity."
    ]
    
    for i, prompt in enumerate(prompts):
        audio_data = generate_music_from_text(prompt)
        if audio_data:
            save_audio(audio_data, f"ai_song_{i+1}.mp3")

Why: Testing with multiple prompts helps you understand how different text inputs affect the AI's interpretation and output quality.

Summary

In this tutorial, we've built a practical AI music generation tool that demonstrates how text prompts can be converted into audio content. We've learned how to:

  • Set up an API-based AI music generation environment
  • Send text prompts to AI services
  • Process and save generated audio files
  • Understand the limitations and capabilities of current AI music generation

While the generated music may not be as polished as professional recordings, this exercise demonstrates the rapid advancement in AI content creation. The example of Tilly Norwood's song shows how AI-generated content can sometimes miss the mark, but also how accessible these tools are for experimentation and creative exploration.

Remember that the quality of AI-generated music depends heavily on the API service used, the quality of your text prompts, and the specific parameters you configure. Experiment with different services and settings to find what works best for your creative projects.

Related Articles