Skip to main content

A text-to-speech server and client using gtts and pydub

Project description

Text to Speech Program

This package provides a text-to-speech server, using gtts and pydub, and a client program to interact with the server.

1. Installing

1.1. Install the package from pip

To install the package from pypi, follow the instructions below:

pip install --upgrade text-to-speech-program

Execute which tts-program-server to see where it was installed, probably in /home/USERNAME/.local/bin/tts-program-server.

1.2. Install the package from pip and add to the Linux service

curl -fsSL https://raw.githubusercontent.com/trucomanx-voice/text_to_speech_program/main/install_linux_service.sh | sh

After the last code, the program server starts at with the operating system. Now the next commands are accepted (Use them if necessary).

1.2.1. Start server service in linux

You only need to start the server if it has been stopped or is disabled from starting with Linux boot.

sudo systemctl start tts-program-server

1.2.2. Stop server service in linux

sudo systemctl stop tts-program-server

1.2.3. Disable service at linux startup

sudo systemctl disable tts-program-server

1.2.4. Show journal of service

journalctl -u tts-program-server -f

2. Using

2.1. Start the server

You only need to start the server if it has been stopped. If the program server was not added to the Linux service, then to start the text-to-speech server, use the command below:

tts-program-server

This starts a server that will listen, by default, on http://127.0.0.1:5000 and will be ready to receive text conversion requests. To modify these values see tts-program-server config.

2.2. Start the client

The client can submit conversion text-to-speech tasks or remove pending jobs from the server.

2.2.1. Sending a JSON file:

Adding a text-to-speech task.

tts-program-client send /caminho/para/arquivo.json

JSON file example:

{
    "text": "Some text to convert.\n\n OK",
    "language": "en",
    "split_pattern": [".", "\n\n", "\n\r\n"],
    "speed":1.25
}

2.2.2. Sending a DICT from string:

Adding a text-to-speech task.

tts-program-client senddict '{ 
    "text": "Some text to convert. OK", 
    "language": "en", 
    "split_pattern": ["."], 
    "speed":1.25 
}'

or if host is localhost and port is 5000. See tts-program-client config to conf the localhost and port.

curl -X POST http://localhost:5000/add_task \
    -H "Content-Type: application/json" \
    -d '{
    "text": "Some text to convert. OK", 
    "language": "en", 
    "split_pattern": ["."], "speed":1.25 
}'

2.2.3. Remove a task from the stack using the ID:

tts-program-client remove <ID>

Replace <ID> with the unique ID returned when adding a task.

2.3. Make a client in Python

import requests

def remove_task(server_url,task_id):
    # Send DELETE request to server
    response = requests.delete(f'{server_url}/remove_task/{task_id}')

    if response.status_code == 200:
        print(response.json()["message"])
        return response.json()["message"]
    else:
        print("Error removing task:",task_id)
        return None

def send_json_from_dict(server_url,data):
    """
    Sends a POST request to the server with a JSON payload.

    Args:
        server_url (str): The base URL of the server.
        data (dict): A dictionary containing the data to be sent as JSON.

    Returns:
        str: The ID of the task if successfully sent, or None if there was an error.
    """
	
    # Send POST request to the server
    response = requests.post(f'{server_url}/add_task', json=data)

    if response.status_code == 200:
        print(f"Task sent successfully! ID: {response.json()['id']}")
        return response.json()['id'];
    else:
        print("Error submitting task.")
        return None;

# Example usage:

SERVER_URL = 'http://localhost:5000'; # If host is localhost and port is 5000

DATA={
    "text": "Some text to convert. OK", 
    "language": "en", 
    "split_pattern": ["."], 
    "speed":1.25 
}


ID=send_json_from_dict(SERVER_URL,DATA);

#msg=remove_task(SERVER_URL,ID);

3. License

This project is licensed under the GPL license. See the LICENSE file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

text_to_speech_program-0.1.10.tar.gz (54.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

text_to_speech_program-0.1.10-py3-none-any.whl (52.0 kB view details)

Uploaded Python 3

File details

Details for the file text_to_speech_program-0.1.10.tar.gz.

File metadata

  • Download URL: text_to_speech_program-0.1.10.tar.gz
  • Upload date:
  • Size: 54.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for text_to_speech_program-0.1.10.tar.gz
Algorithm Hash digest
SHA256 ffa177d0a41d7fbbd11853bf3d15e621ef2ea076bbae37e710f4f310af637b6a
MD5 8143dc64f7653c43a2c346119ab45c6f
BLAKE2b-256 c43e6c9a66d07b8633cc8dedb0fc10b39bf3d1eed5a045a1327d696a5f7e6db1

See more details on using hashes here.

File details

Details for the file text_to_speech_program-0.1.10-py3-none-any.whl.

File metadata

File hashes

Hashes for text_to_speech_program-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 c27b86aec267e91f1e16a8cf83a1f043b4ccf17385c441f2f0203a4730872cbc
MD5 ea365b087e47796cdbdcede01c1ea628
BLAKE2b-256 a7ebe2c085898779dd0ce433d9b0cb99e654753b0654f8c70ccbea78cbd8a707

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page