Azure TTS Client
A terminal-based Text-to-Speech client for Azure Cognitive Services, built with Textual.
Features
- Multiple voice options (English, French, German, Spanish, Chinese)
- Beautiful terminal UI with live playback
- Save audio to WAV files
- Secure API key storage
- Fast and lightweight
Usage
Running the app
Run directly without installation:
uvx azure-tts-client
First-time setup
On first launch, you'll be prompted to enter your Azure Speech API key. The key will be saved securely to ~/.azure_tts_env.
To get an Azure Speech API key:
- Go to Azure Portal
- Create a Speech Service resource
- Copy the API key from the resource
Using the app
- Type your text in the text area
- Select a voice from the dropdown menu
- Click Play to hear the speech
- Click Save to export audio to
output.wav - Click Clear Text to reset the input
Development
Local development
Clone the repository:
git clone <repository-url>
cd azure-client-tts
Run with uv:
uv run -m azure_tts_client
Requirements
- Python 3.10+
- Azure Speech API key
Publishing to PyPI
Prerequisites
- Set up PyPI credentials:
- Create an account on PyPI
- Generate an API token at https://pypi.org/manage/account/token/
- Store the token for publishing
Publishing Steps
-
Update the version in pyproject.toml
-
Build the package:
uv build
- Publish to PyPI:
uv publish
You'll be prompted for your PyPI token during publish.
Alternatively, set the token as an environment variable:
export UV_PUBLISH_TOKEN=pypi-your-api-token-here
uv publish
To publish to TestPyPI first:
uv publish --publish-url https://test.pypi.org/legacy/
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Metadata
Release files for azure-tts-client 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| azure_tts_client-0.1.2.tar.gz | 14.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| azure_tts_client-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.0 kB
Release files / azure_tts_client-0.1.2.tar.gz
| Download URL | azure_tts_client-0.1.2.tar.gz |
|---|---|
| Size | 14.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
23cb119e552b880d5928d99f0959eaf0abc9e162da4808bce66c7f420034ced3
|
|
BLAKE2b-256 checksum How to use checksums |
69b1b23dfe5333d2e7b88de8b4cb4f43e48fc0243fce9bda7da3cbb34f82b434
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.0
|
Release files / azure_tts_client-0.1.2-py3-none-any.whl
| Download URL | azure_tts_client-0.1.2-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de3d35f91bb0d7dd1ba2eb670c38eefa881a93f88428554e02fa675ec280e6b5
|
|
BLAKE2b-256 checksum How to use checksums |
db5743f23c48e21ec2a72172c95716d7fcb2cd105680c3a1f69c2f9666a57ff8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.0
|
Security for azure-tts-client 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.