This project takes podcast episodes from the Podcast Index, converts the audio into text, summarizes the content, generates an image based on the summary, translates the summary into French, and allows users to ask questions about the episode. Additionally, ElevenLabs is used for audio generation.
screen-capture.mp4
- Audio to Text: Convert podcast episodes into text using Hugging Face models.
- Summarization: Create concise summaries of podcast episodes.
- Translation: Translate summarized content into French.
- Image Generation: Generate images based on the summarization.
- Q&A: Ask questions about the episode and get accurate answers.
- Audio Creation: Generate audio content with ElevenLabs.
- Java 21
- SpringBoot 3.3.3: Backend framework for building fast and scalable applications.
- Hugging Face: Provides models for transcription, summarization, and translation.
- ElevenLabs: Generates audio content based on summaries.
- LangChain4J: Orchestrates the entire process by creating a chain that integrates all functionalities.
- Fetch Podcast: Spring Rest Client is used to retrieve podcast audio from the Podcast Index.
- Audio Transcription: Hugging Face models convert the audio into text.
- Summarization: The transcribed text is summarized using Hugging Face models.
- Translation: The summary is translated into French using Hugging Face translation models.
- Image Generation: An image is generated from the summarization using AI tools.
- Audio Creation: ElevenLabs generates audio from the summarized content.
- Q&A: Users can ask questions about the episode, and LangChain coordinates the response process.
- Set up MySQL on your local machine.
- Set up qdrant: https://cloud.qdrant.io
- Create a database named 'podcast_analyzer'
- Set up the following environment variables.
- export QDRANT_GRPC_HOST=your_host;
- export QDRANT_API_KEY=your_api_key;
- export ELEVENLABS_API_KEY=your_api_key;
- export PODCAST_INDEX_API_SECRET=your_api_secret;
- export PODCAST_INDEX_API_KEY=your_api_key;
- export HF_API_KEY=your_api_key;
- Run the command: mvn exec:java -Dspring.profiles.active=local
- Open the following link in your browser: http://localhost:8208/api/swagger-ui/index.html#/
Feel free to open issues or submit pull requests to improve the project. Contributions are welcome!