Metadata-Version: 2.4
Name: manim-voiceover-ai
Version: 0.1.0
Summary: Manim plugin for all things voiceover
License: MIT
License-File: LICENSE
License-File: LICENSE-Manim Community Developers
Keywords: text-to-speech,tts,voiceover,manim,recording,speech synthesis,math animations
Author: The Manim Community Developers
Author-email: contact@manim.community
Requires-Python: >=3.8,<4
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.7
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
Provides-Extra: all
Provides-Extra: azure
Provides-Extra: coqui
Provides-Extra: elevenlabs
Provides-Extra: gtts
Provides-Extra: openai
Provides-Extra: pyttsx3
Provides-Extra: recorder
Provides-Extra: transcribe
Provides-Extra: translate
Requires-Dist: PyAudio (>=0.2.12,<0.3.0) ; extra == "recorder" or extra == "all"
Requires-Dist: azure-cognitiveservices-speech (>=1.24.0,<2.0.0) ; extra == "azure" or extra == "all"
Requires-Dist: deepl (>=1.12.0,<2.0.0) ; extra == "translate" or extra == "all"
Requires-Dist: elevenlabs (>=0.2.27,<0.3.0) ; extra == "elevenlabs" or extra == "all"
Requires-Dist: gTTS (>=2.2.4,<3.0.0) ; extra == "gtts" or extra == "all"
Requires-Dist: manim
Requires-Dist: mutagen (>=1.46.0,<2.0.0)
Requires-Dist: openai (>=1.6.1,<2.0.0) ; extra == "openai" or extra == "all"
Requires-Dist: openai-whisper (>=20230314,<20230315) ; extra == "transcribe" or extra == "all"
Requires-Dist: pip (>=21.0.1)
Requires-Dist: pydub (>=0.25.1,<0.26.0)
Requires-Dist: pynput (>=1.7.6,<2.0.0) ; extra == "recorder" or extra == "all"
Requires-Dist: python-dotenv (>=0.21.0,<0.22.0)
Requires-Dist: python-slugify (>=8.0.1,<9.0.0)
Requires-Dist: pyttsx3 (>=2.90,<3.0) ; extra == "pyttsx3" or extra == "all"
Requires-Dist: sox (>=1.4.1,<2.0.0)
Requires-Dist: stable-ts (>=2.6.2,<3.0.0) ; extra == "transcribe" or extra == "all"
Project-URL: Documentation, https://voiceover.manim.community
Project-URL: Homepage, https://voiceover.manim.community
Project-URL: Repository, https://github.com/MarkHoo/manim-voiceover-ai
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://user-images.githubusercontent.com/2453968/198145393-6a1bd709-4441-4821-8541-45d5f5e25be7.mp4

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

- [Azure Text to Speech](https://azure.microsoft.com/en-us/services/cognitive-services/text-to-speech/) (Recommended for AI voices)
- [Coqui TTS](https://github.com/coqui-ai/TTS/)
- [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)
