StoryTeller is an experimental web application that creates short audio stories for pre-school kids.
MIT License
StoryTeller is an experimental web application that creates short audio stories for pre-school kids.
https://github.com/lgrammel/storyteller/assets/205036/963df672-a4fc-4d0f-a74c-1e37c1246763
The main flow from the diagram can be found in generateStoryFlow. Most of the UI is implemented in index.tsx.
Install dependencies: npm i
Setup .env
with required keys and base url:
NEXT_PUBLIC_BASE_URL="http://localhost:3001"
OPENAI_API_KEY="sk-..."
ELEVENLABS_API_KEY="..."
LMNT_API_KEY="..."
STABILITY_API_KEY="sk-..."
You can get the API keys from the respective services:
Start Fastify server (runs on port 3001): npm run fastify
Start Next.js server for UI (runs on port 3000): npm run next
Go to localhost:3000
npm run build
. This exports the app to the out
folder, so it can be served by Fastify.StoryTeller can be deployed as a Render web service.
npm i; npm run build
npm start
NEXT_PUBLIC_BASE_URL
environment variable to the Render service URL (base url must not have trailing slash)StoryTeller is built with the following libraries:
The following AI APIs are used: