# Azure TTS Client
A terminal-based Text-to-Speech client for Azure Cognitive Services, built with [Textual](https://textual.textualize.io/).
## 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:
```bash
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:
1. Go to [Azure Portal](https://portal.azure.com)
2. Create a Speech Service resource
3. Copy the API key from the resource
### Using the app
1. **Type your text** in the text area
2. **Select a voice** from the dropdown menu
3. **Click Play** to hear the speech
4. **Click Save** to export audio to `output.wav`
5. **Click Clear Text** to reset the input
## Development
### Local development
Clone the repository:
```bash
git clone <repository-url>
cd azure-client-tts
```
Run with uv:
```bash
uv run -m azure_tts_client
```
## Requirements
- Python 3.10+
- Azure Speech API key
## Publishing to PyPI
### Prerequisites
1. Set up PyPI credentials:
- Create an account on [PyPI](https://pypi.org)
- Generate an API token at https://pypi.org/manage/account/token/
- Store the token for publishing
### Publishing Steps
1. Update the version in [pyproject.toml](pyproject.toml)
2. Build the package:
```bash
uv build
```
3. Publish to PyPI:
```bash
uv publish
```
You'll be prompted for your PyPI token during publish.
Alternatively, set the token as an environment variable:
```bash
export UV_PUBLISH_TOKEN=pypi-your-api-token-here
uv publish
```
To publish to TestPyPI first:
```bash
uv publish --publish-url https://test.pypi.org/legacy/
```
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Raw data
{
"_id": null,
"home_page": null,
"name": "azure-tts-client",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.14",
"maintainer_email": null,
"keywords": "azure, cli, speech-synthesis, terminal, text-to-speech, tts",
"author": null,
"author_email": "Steins Z <steins.z@foxmail.com>",
"download_url": "https://files.pythonhosted.org/packages/69/b1/b23dfe5333d2e7b88de8b4cb4f43e48fc0243fce9bda7da3cbb34f82b434/azure_tts_client-0.1.2.tar.gz",
"platform": null,
"description": "# Azure TTS Client\n\nA terminal-based Text-to-Speech client for Azure Cognitive Services, built with [Textual](https://textual.textualize.io/).\n\n## Features\n\n- Multiple voice options (English, French, German, Spanish, Chinese)\n- Beautiful terminal UI with live playback\n- Save audio to WAV files\n- Secure API key storage\n- Fast and lightweight\n\n## Usage\n\n### Running the app\n\nRun directly without installation:\n\n```bash\nuvx azure-tts-client\n```\n\n### First-time setup\n\nOn first launch, you'll be prompted to enter your Azure Speech API key. The key will be saved securely to `~/.azure_tts_env`.\n\nTo get an Azure Speech API key:\n1. Go to [Azure Portal](https://portal.azure.com)\n2. Create a Speech Service resource\n3. Copy the API key from the resource\n\n### Using the app\n\n1. **Type your text** in the text area\n2. **Select a voice** from the dropdown menu\n3. **Click Play** to hear the speech\n4. **Click Save** to export audio to `output.wav`\n5. **Click Clear Text** to reset the input\n\n## Development\n\n### Local development\n\nClone the repository:\n\n```bash\ngit clone <repository-url>\ncd azure-client-tts\n```\n\nRun with uv:\n\n```bash\nuv run -m azure_tts_client\n```\n\n## Requirements\n\n- Python 3.10+\n- Azure Speech API key\n\n## Publishing to PyPI\n\n### Prerequisites\n\n1. Set up PyPI credentials:\n - Create an account on [PyPI](https://pypi.org)\n - Generate an API token at https://pypi.org/manage/account/token/\n - Store the token for publishing\n\n### Publishing Steps\n\n1. Update the version in [pyproject.toml](pyproject.toml)\n\n2. Build the package:\n```bash\nuv build\n```\n\n3. Publish to PyPI:\n```bash\nuv publish\n```\n\nYou'll be prompted for your PyPI token during publish.\n\nAlternatively, set the token as an environment variable:\n```bash\nexport UV_PUBLISH_TOKEN=pypi-your-api-token-here\nuv publish\n```\n\nTo publish to TestPyPI first:\n```bash\nuv publish --publish-url https://test.pypi.org/legacy/\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n",
"bugtrack_url": null,
"license": null,
"summary": "Azure Text-to-Speech Terminal Client",
"version": "0.1.2",
"project_urls": null,
"split_keywords": [
"azure",
" cli",
" speech-synthesis",
" terminal",
" text-to-speech",
" tts"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "db5743f23c48e21ec2a72172c95716d7fcb2cd105680c3a1f69c2f9666a57ff8",
"md5": "3532c462da2d72c75172befd953e66a4",
"sha256": "de3d35f91bb0d7dd1ba2eb670c38eefa881a93f88428554e02fa675ec280e6b5"
},
"downloads": -1,
"filename": "azure_tts_client-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3532c462da2d72c75172befd953e66a4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.14",
"size": 7902,
"upload_time": "2025-10-21T14:43:33",
"upload_time_iso_8601": "2025-10-21T14:43:33.755185Z",
"url": "https://files.pythonhosted.org/packages/db/57/43f23c48e21ec2a72172c95716d7fcb2cd105680c3a1f69c2f9666a57ff8/azure_tts_client-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "69b1b23dfe5333d2e7b88de8b4cb4f43e48fc0243fce9bda7da3cbb34f82b434",
"md5": "d7f391e5e7381bd347ad1cfb8212f142",
"sha256": "23cb119e552b880d5928d99f0959eaf0abc9e162da4808bce66c7f420034ced3"
},
"downloads": -1,
"filename": "azure_tts_client-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "d7f391e5e7381bd347ad1cfb8212f142",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.14",
"size": 14062,
"upload_time": "2025-10-21T14:43:34",
"upload_time_iso_8601": "2025-10-21T14:43:34.873471Z",
"url": "https://files.pythonhosted.org/packages/69/b1/b23dfe5333d2e7b88de8b4cb4f43e48fc0243fce9bda7da3cbb34f82b434/azure_tts_client-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-21 14:43:34",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "azure-tts-client"
}