A developer setting up a Voice AI project with ElevenLabs and React.

Create Engaging Stories with ElevenLabs' Voice AI

Introduction to AI Story Generation and Voiceover Integration

In a world increasingly dominated by artificial intelligence, combining tools like ElevenLabs and OpenAI's ChatGPT can lead to innovative applications. In this tutorial, we will guide you through building a React app that generates captivating stories and adds realistic voiceovers.

Learning Outcomes

  • Familiarity with ElevenLabs' voice generation technology.
  • Understanding OpenAI's ChatGPT-3.5-turbo language model.
  • Creating a React application from scratch.
  • Utilizing Material-UI for a user-friendly interface.

Prerequisites

Before we begin, ensure you have the following:

  1. A compatible code editor (e.g., Visual Studio Code, IntelliJ IDEA, or PyCharm).
  2. An API key from ElevenLabs and OpenAI (follow the instructions on their respective platforms).
  3. Your favorite beverage, preferably a cup of coffee!

Getting Started

Create a New Project

Open your code editor and create a new folder named elevenlabs-tutorial.

Backend Development

Create a Backend Folder

In your terminal, create a backend folder for organizing your server-side code.

Create and Set Up the Python Environment

# Create a new Python file
# Set up the virtual environment
python -m venv venv
# Activate the virtual environment
dotenv/bin/activate  # for Linux/Mac
venv\Scripts\activate  # for Windows
# Install dependencies
pip install fastapi uvicorn

Implement the API

In your api.py file, the following steps are essential:

  • Initialize FastAPI.
  • Add CORS middleware for secure API access.
  • Implement API endpoints for both voice and story generation.

Run the Backend

Check the functionality of your backend server by visiting http://localhost:8000/docs in your web browser.

Frontend Development

Create a New React App

# Create your React application
npx create-react-app my-app
cd my-app

Install Dependencies

Install the required libraries:

npm install @mui/material @mui/icons-material use-sound axios

Implement the UI

Edit the src/App.js with the necessary code to manage user interactions. Key functions include:

  • handleQueryChange - Updates the query state based on user input.
  • generateStory - Fetches a story from your FastAPI server.
  • generateAudio - Fetches voiceover audio from the server.
import React, { useState } from 'react';
import { Box, Typography, TextareaAutosize, Button } from '@mui/material';

const App = () => {
    const [story, setStory] = useState('');
    const [query, setQuery] = useState('');
    const [audio, setAudio] = useState('');

    // Function implementations here...
};

Running the Application

Start your React app by running:

npm start

Navigate to http://localhost:3000/ and generate your first story!

Conclusion

By completing this tutorial, you've learned to integrate voice generation with story creation using modern technologies. This application can serve as a fundamental tool for educators, authors, and content creators looking to engage their audience with interactive storytelling. We hope you enjoyed this journey into the world of AI!

Thank you for following along, and happy coding!

Back to blog

Leave a comment