Metadata-Version: 2.4
Name: manim-voiceover
Version: 0.4.0
Summary: Manim plugin for all things voiceover
Project-URL: Repository, https://github.com/ManimCommunity/manim-voiceover
Project-URL: Homepage, https://voiceover.manim.community
Project-URL: Documentation, https://voiceover.manim.community
Author-email: The Manim Community Developers <contact@manim.community>
License-Expression: MIT
License-File: LICENSE
Keywords: manim,math animations,recording,speech synthesis,text-to-speech,tts,voiceover
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Multimedia :: Sound/Audio :: Capture/Recording
Classifier: Topic :: Multimedia :: Sound/Audio :: Sound Synthesis
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.11
Requires-Dist: manim
Requires-Dist: mutagen<2,>=1.46.0
Requires-Dist: pip>=26.1.2
Requires-Dist: pydantic<3,>=2.10
Requires-Dist: pydub<0.26,>=0.25.1
Requires-Dist: python-dotenv<2,>=1.2.2
Requires-Dist: python-slugify<9,>=8.0.1
Requires-Dist: sox<2,>=1.4.1
Provides-Extra: all
Requires-Dist: azure-cognitiveservices-speech<2,>=1.24.0; extra == 'all'
Requires-Dist: deepl<2,>=1.12.0; extra == 'all'
Requires-Dist: elevenlabs<0.3,>=0.2.27; extra == 'all'
Requires-Dist: google-genai<3,>=1.0; extra == 'all'
Requires-Dist: gtts<3,>=2.2.4; extra == 'all'
Requires-Dist: openai-whisper>=20230314; extra == 'all'
Requires-Dist: openai<2,>=1.6.1; extra == 'all'
Requires-Dist: pyaudio<0.3,>=0.2.12; extra == 'all'
Requires-Dist: pynput<2,>=1.7.6; extra == 'all'
Requires-Dist: pyttsx3<3,>=2.90; extra == 'all'
Requires-Dist: stable-ts<3,>=2.6.2; extra == 'all'
Provides-Extra: azure
Requires-Dist: azure-cognitiveservices-speech<2,>=1.24.0; extra == 'azure'
Provides-Extra: elevenlabs
Requires-Dist: elevenlabs<0.3,>=0.2.27; extra == 'elevenlabs'
Provides-Extra: gemini
Requires-Dist: google-genai<3,>=1.0; extra == 'gemini'
Provides-Extra: gtts
Requires-Dist: gtts<3,>=2.2.4; extra == 'gtts'
Provides-Extra: openai
Requires-Dist: openai<2,>=1.6.1; extra == 'openai'
Provides-Extra: pyttsx3
Requires-Dist: pyttsx3<3,>=2.90; extra == 'pyttsx3'
Provides-Extra: recorder
Requires-Dist: pyaudio<0.3,>=0.2.12; extra == 'recorder'
Requires-Dist: pynput<2,>=1.7.6; extra == 'recorder'
Provides-Extra: transcribe
Requires-Dist: openai-whisper>=20230314; extra == 'transcribe'
Requires-Dist: stable-ts<3,>=2.6.2; extra == 'transcribe'
Provides-Extra: translate
Requires-Dist: deepl<2,>=1.12.0; extra == 'translate'
Description-Content-Type: text/markdown

# Manim Voiceover

<p>
    <a href="https://github.com/ManimCommunity/manim-voiceover/workflows/Build/badge.svg"><img src="https://github.com/ManimCommunity/manim-voiceover/workflows/Build/badge.svg" alt="Github Actions Status"></a>
    <a href="https://pypi.org/project/manim_voiceover/"><img src="https://img.shields.io/pypi/v/manim_voiceover.svg?style=flat&logo=pypi" alt="PyPI Latest Release"></a>
    <a href="https://pepy.tech/project/manim_voiceover"><img src="https://pepy.tech/badge/manim_voiceover/month?" alt="Downloads"> </a>
    <a href="https://voiceover.manim.community/en/latest"><img src="https://readthedocs.org/projects/manim_voiceover/badge/?version=latest" alt="Documentation Status"></a>
    <a href="https://github.com/ManimCommunity/manim-voiceover/blob/main/LICENSE"><img src="https://img.shields.io/github/license/ManimCommunity/manim-voiceover.svg?color=blue" alt="License"></a>
    <a href="https://manim.community/discord"><img src="https://dcbadge.vercel.app/api/server/qY23bthHTY?style=flat" alt="Discord"></a>
</p>

Manim Voiceover is a [Manim](https://manim.community) plugin for all things voiceover:

- Add voiceovers to Manim videos *directly in Python* without having to use a video editor.
- Record voiceovers with your microphone during rendering with a simple command line interface.
- Develop animations with auto-generated AI voices from various free and proprietary services.
- Per-word timing of animations, i.e. trigger animations at specific words in the voiceover, even for the recordings. This works thanks to [OpenAI Whisper](https://github.com/openai/whisper).

Here is a demo:

https://github.com/user-attachments/assets/76b01569-ffcd-4ddb-b9d3-08685c5d375f

Currently supported TTS services (aside from the CLI that allows you to records your own voice):

- [Gemini Text to Speech](https://ai.google.dev/gemini-api/docs/speech-generation) (Recommended for AI voices)
- [Azure Text to Speech](https://azure.microsoft.com/en-us/services/cognitive-services/text-to-speech/)
- [gTTS](https://github.com/pndurette/gTTS/)
- [pyttsx3](https://github.com/nateshmbhat/pyttsx3)

[Check out the documentation for more details.](https://voiceover.manim.community/)

## Installation

[Installation instructions in Manim Voiceover docs.](https://voiceover.manim.community/en/latest/installation.html)

## Get started

[Check out the docs to get started with Manim Voiceover.](https://voiceover.manim.community/en/latest/quickstart.html)

## Examples

[Check out the example gallery to get inspired.](https://voiceover.manim.community/en/latest/examples.html)

## Translate

Manim Voiceover can use machine translation services like [DeepL](https://www.deepl.com/) to translate voiceovers into other languages. [Check out the docs for more details.](https://voiceover.manim.community/en/latest/translate.html)
