pyttsx3


Namepyttsx3 JSON
Version 2.99 PyPI version JSON
download
home_pageNone
SummaryText to Speech (TTS) library for Python 3. Works without internet connection or delay. Supports multiple TTS engines, including Sapi5, nsss, and espeak.
upload_time2025-07-08 12:24:21
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords gtts ivona offline text to speech offline tts pyttsx pyttsx for python3 pyttsx3 speech speech synthesis text to speech text to speech for python tts tts for python3
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img src=".github/logo.svg?sanitize=true" width="200px" height="200px">
</p>
<h2 align="center">Offline Text To Speech (TTS) converter for Python </h2>


[![Downloads](https://pepy.tech/badge/pyttsx3)](https://pepy.tech/project/pyttsx3) ![Downloads](https://pepy.tech/badge/pyttsx3/week)  [![](https://img.shields.io/github/languages/code-size/nateshmbhat/pyttsx3.svg?style=plastic)](https://github.com/nateshmbhat/pyttsx3)  [![](https://img.shields.io/github/license/nateshmbhat/pyttsx3?style=plastic)](https://github.com/nateshmbhat/pyttsx3) [![](https://img.shields.io/pypi/v/pyttsx3.svg?style=plastic)](https://pypi.org/project/pyttsx3/) [![](https://img.shields.io/github/languages/top/nateshmbhat/pyttsx3.svg?style=plastic)](https://github.com/nateshmbhat/pyttsx3) [![](https://img.shields.io/badge/author-nateshmbhat-green.svg)](https://github.com/nateshmbhat)


`pyttsx3` is a text-to-speech conversion library in Python. Unlike alternative libraries, **it works offline**.

<a class="bmc-button" target="_blank" href="https://www.buymeacoffee.com/nateshmbhat"><img src="https://cdn.buymeacoffee.com/buttons/bmc-new-btn-logo.svg" alt="Buy me a coffee 😇"><span style="margin-left:5px;font-size:19px !important;">Buy me a coffee 😇</span></a>

## Installation :

	pip install pyttsx3

> If you get installation errors , make sure you first upgrade your wheel version using :
`pip install --upgrade wheel`


## Features :

- ✨Fully **OFFLINE** text to speech conversion
- 🎈 Choose among different voices installed in your system
- 🎛 Control speed/rate of speech
- 🎚 Tweak Volume
- 📀 Save the speech audio as a file
- ❤️ Simple, powerful, & intuitive API


#### Linux installation requirements :

+ If you are on a Linux system and if the voice output is not working, then  :

	Install espeak-ng and libespeak1 as shown below:

	```
	sudo apt update && sudo apt install espeak-ng libespeak1
	```

## Usage :

```python3
import pyttsx3
engine = pyttsx3.init()

# For Mac, If you face error related to "pyobjc" when running the `init()` method :
# Install 9.0.1 version of pyobjc : "pip install pyobjc>=9.0.1"

engine.say("I will speak this text")
engine.runAndWait()
```

**Single line usage with speak function with default options**

```python3
import pyttsx3
pyttsx3.speak("I will speak this text")
```

**Changing Voice , Rate and Volume :**

```python3
import pyttsx3
engine = pyttsx3.init() # object creation

# RATE
rate = engine.getProperty('rate')   # getting details of current speaking rate
print (rate)                        # printing current voice rate
engine.setProperty('rate', 125)     # setting up new voice rate

# VOLUME
volume = engine.getProperty('volume')   # getting to know current volume level (min=0 and max=1)
print (volume)                          # printing current volume level
engine.setProperty('volume',1.0)        # setting up volume level  between 0 and 1

# VOICE
voices = engine.getProperty('voices')       # getting details of current voice
#engine.setProperty('voice', voices[0].id)  # changing index, changes voices. o for male
engine.setProperty('voice', voices[1].id)   # changing index, changes voices. 1 for female

engine.say("Hello World!")
engine.say('My current speaking rate is ' + str(rate))
engine.runAndWait()
engine.stop()

# Saving Voice to a file
# On Linux, make sure that 'espeak-ng' is installed
engine.save_to_file('Hello World', 'test.mp3')
engine.runAndWait()
```

### **Full documentation of the Library**

https://pyttsx3.readthedocs.io

#### Included Text-To-Speech Engines by Operating System
|                         | Linux | macOS | Windows |
|-------------------------|:-----:|:-----:|:-------:|
| [AVSpeech][]            |       |   ✅︎  |         |
| [eSpeak][]              |   ✅︎  |   ✅︎  |    ✅︎   |
| [NSSpeechSynthesizer][] |       |   ✅︎  |         |
| [SAPI5][]               |       |       |    ✅︎   |

> [!NOTE]
> * AVSpeechSynthesizer support is still experimental.
> * NSSpeechSynthesizer is deprecated by Apple.

[AVSpeech]: https://developer.apple.com/documentation/avfoundation/speech_synthesis
[eSpeak]: https://github.com/espeak-ng/espeak-ng?tab=readme-ov-file#readme
[NSSpeechSynthesizer]: https://developer.apple.com/documentation/appkit/nsspeechsynthesizer
[SAPI5]: https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ms723627(v=vs.85)

Feel free to wrap another text-to-speech engine for use with ``pyttsx3``.

### Project Links :

* PyPI (https://pypi.org/project/pyttsx3)
* GitHub (https://github.com/nateshmbhat/pyttsx3)
* Full Documentation (https://pyttsx3.readthedocs.org)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyttsx3",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "gtts, ivona, offline text to speech, offline tts, pyttsx, pyttsx for python3, pyttsx3, speech, speech synthesis, text to speech, text to speech for python, tts, TTS for python3",
    "author": null,
    "author_email": "Natesh M Bhat <nateshmbhatofficial@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/94/4e/a37786f666f4f084fc45e026ca1e63f7b49ac0d90b53fa35ae62b73c96a8/pyttsx3-2.99.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <img src=\".github/logo.svg?sanitize=true\" width=\"200px\" height=\"200px\">\n</p>\n<h2 align=\"center\">Offline Text To Speech (TTS) converter for Python </h2>\n\n\n[![Downloads](https://pepy.tech/badge/pyttsx3)](https://pepy.tech/project/pyttsx3) ![Downloads](https://pepy.tech/badge/pyttsx3/week)  [![](https://img.shields.io/github/languages/code-size/nateshmbhat/pyttsx3.svg?style=plastic)](https://github.com/nateshmbhat/pyttsx3)  [![](https://img.shields.io/github/license/nateshmbhat/pyttsx3?style=plastic)](https://github.com/nateshmbhat/pyttsx3) [![](https://img.shields.io/pypi/v/pyttsx3.svg?style=plastic)](https://pypi.org/project/pyttsx3/) [![](https://img.shields.io/github/languages/top/nateshmbhat/pyttsx3.svg?style=plastic)](https://github.com/nateshmbhat/pyttsx3) [![](https://img.shields.io/badge/author-nateshmbhat-green.svg)](https://github.com/nateshmbhat)\n\n\n`pyttsx3` is a text-to-speech conversion library in Python. Unlike alternative libraries, **it works offline**.\n\n<a class=\"bmc-button\" target=\"_blank\" href=\"https://www.buymeacoffee.com/nateshmbhat\"><img src=\"https://cdn.buymeacoffee.com/buttons/bmc-new-btn-logo.svg\" alt=\"Buy me a coffee \ud83d\ude07\"><span style=\"margin-left:5px;font-size:19px !important;\">Buy me a coffee \ud83d\ude07</span></a>\n\n## Installation :\n\n\tpip install pyttsx3\n\n> If you get installation errors , make sure you first upgrade your wheel version using :\n`pip install --upgrade wheel`\n\n\n## Features :\n\n- \u2728Fully **OFFLINE** text to speech conversion\n- \ud83c\udf88 Choose among different voices installed in your system\n- \ud83c\udf9b Control speed/rate of speech\n- \ud83c\udf9a Tweak Volume\n- \ud83d\udcc0 Save the speech audio as a file\n- \u2764\ufe0f Simple, powerful, & intuitive API\n\n\n#### Linux installation requirements :\n\n+ If you are on a Linux system and if the voice output is not working, then  :\n\n\tInstall espeak-ng and libespeak1 as shown below:\n\n\t```\n\tsudo apt update && sudo apt install espeak-ng libespeak1\n\t```\n\n## Usage :\n\n```python3\nimport pyttsx3\nengine = pyttsx3.init()\n\n# For Mac, If you face error related to \"pyobjc\" when running the `init()` method :\n# Install 9.0.1 version of pyobjc : \"pip install pyobjc>=9.0.1\"\n\nengine.say(\"I will speak this text\")\nengine.runAndWait()\n```\n\n**Single line usage with speak function with default options**\n\n```python3\nimport pyttsx3\npyttsx3.speak(\"I will speak this text\")\n```\n\n**Changing Voice , Rate and Volume :**\n\n```python3\nimport pyttsx3\nengine = pyttsx3.init() # object creation\n\n# RATE\nrate = engine.getProperty('rate')   # getting details of current speaking rate\nprint (rate)                        # printing current voice rate\nengine.setProperty('rate', 125)     # setting up new voice rate\n\n# VOLUME\nvolume = engine.getProperty('volume')   # getting to know current volume level (min=0 and max=1)\nprint (volume)                          # printing current volume level\nengine.setProperty('volume',1.0)        # setting up volume level  between 0 and 1\n\n# VOICE\nvoices = engine.getProperty('voices')       # getting details of current voice\n#engine.setProperty('voice', voices[0].id)  # changing index, changes voices. o for male\nengine.setProperty('voice', voices[1].id)   # changing index, changes voices. 1 for female\n\nengine.say(\"Hello World!\")\nengine.say('My current speaking rate is ' + str(rate))\nengine.runAndWait()\nengine.stop()\n\n# Saving Voice to a file\n# On Linux, make sure that 'espeak-ng' is installed\nengine.save_to_file('Hello World', 'test.mp3')\nengine.runAndWait()\n```\n\n### **Full documentation of the Library**\n\nhttps://pyttsx3.readthedocs.io\n\n#### Included Text-To-Speech Engines by Operating System\n|                         | Linux | macOS | Windows |\n|-------------------------|:-----:|:-----:|:-------:|\n| [AVSpeech][]            |       |   \u2705\ufe0e  |         |\n| [eSpeak][]              |   \u2705\ufe0e  |   \u2705\ufe0e  |    \u2705\ufe0e   |\n| [NSSpeechSynthesizer][] |       |   \u2705\ufe0e  |         |\n| [SAPI5][]               |       |       |    \u2705\ufe0e   |\n\n> [!NOTE]\n> * AVSpeechSynthesizer support is still experimental.\n> * NSSpeechSynthesizer is deprecated by Apple.\n\n[AVSpeech]: https://developer.apple.com/documentation/avfoundation/speech_synthesis\n[eSpeak]: https://github.com/espeak-ng/espeak-ng?tab=readme-ov-file#readme\n[NSSpeechSynthesizer]: https://developer.apple.com/documentation/appkit/nsspeechsynthesizer\n[SAPI5]: https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ms723627(v=vs.85)\n\nFeel free to wrap another text-to-speech engine for use with ``pyttsx3``.\n\n### Project Links :\n\n* PyPI (https://pypi.org/project/pyttsx3)\n* GitHub (https://github.com/nateshmbhat/pyttsx3)\n* Full Documentation (https://pyttsx3.readthedocs.org)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Text to Speech (TTS) library for Python 3. Works without internet connection or delay. Supports multiple TTS engines, including Sapi5, nsss, and espeak.",
    "version": "2.99",
    "project_urls": {
        "Homepage": "https://github.com/nateshmbhat/pyttsx3"
    },
    "split_keywords": [
        "gtts",
        " ivona",
        " offline text to speech",
        " offline tts",
        " pyttsx",
        " pyttsx for python3",
        " pyttsx3",
        " speech",
        " speech synthesis",
        " text to speech",
        " text to speech for python",
        " tts",
        " tts for python3"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "84149fb5842581f0419b5eb85f8c26c1c0c0f4cf6b4d5be638ae3157316a2650",
                "md5": "f62b7e09aa4c6f400033e9a7ee06838a",
                "sha256": "ff3e4ff756c24d72b9f3f2f304e0edaafd0f58adb0e6f4b90d930440cda8b207"
            },
            "downloads": -1,
            "filename": "pyttsx3-2.99-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f62b7e09aa4c6f400033e9a7ee06838a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 32157,
            "upload_time": "2025-07-08T12:24:20",
            "upload_time_iso_8601": "2025-07-08T12:24:20.299268Z",
            "url": "https://files.pythonhosted.org/packages/84/14/9fb5842581f0419b5eb85f8c26c1c0c0f4cf6b4d5be638ae3157316a2650/pyttsx3-2.99-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "944ea37786f666f4f084fc45e026ca1e63f7b49ac0d90b53fa35ae62b73c96a8",
                "md5": "229bc0443002eca4b9a09ec3bdbc47b5",
                "sha256": "a18a5601530a570c43491b4112887fc34c47e118fc937287db8d21905da1f74e"
            },
            "downloads": -1,
            "filename": "pyttsx3-2.99.tar.gz",
            "has_sig": false,
            "md5_digest": "229bc0443002eca4b9a09ec3bdbc47b5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 33968,
            "upload_time": "2025-07-08T12:24:21",
            "upload_time_iso_8601": "2025-07-08T12:24:21.314616Z",
            "url": "https://files.pythonhosted.org/packages/94/4e/a37786f666f4f084fc45e026ca1e63f7b49ac0d90b53fa35ae62b73c96a8/pyttsx3-2.99.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-08 12:24:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nateshmbhat",
    "github_project": "pyttsx3",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyttsx3"
}
        
Elapsed time: 0.86875s