Skip to main content

Turns your voice into text-to-speech!

Project description

Voice Robotifier

This module contains an extremely simple class for recording audio, then playing it back using the text-to-speech program DECtalk.

Setup

Installation is made easy using pip:

pip install voice-robotifier

Example

import voice_robotifier

vr = voice_robotifier.VoiceRobotifier()

vr.set_voice_name('Harry')
vr.set_voice_rate(250) # words per minute

# optional: use different input/output devices than your current default
# vr.set_input_device('Microphone (C-Media USB Audio Device)')
# vr.set_output_device('CABLE Input (VB-Audio Virtual Cable)')

push_to_talk_key = 'v'
vr.start(push_to_talk_key)

Reference

VoiceRobotifier() -> VoiceRobotifier

Creates a new VoiceRobotifier instance.

VoiceRobotifier.start(key: Union[int, str], key_quit: Union[int, str] = 'esc', block: bool = True) -> Callable[None, None]

Starts the VoiceRobotifier in push-to-talk mode, where key is an int or str representing the desired push-to-talk key, and key_quit represents the key that should cause the thread to stop.

The operations of the method take place in a daemon thread, which the current thread will join on if block is True. If you want to carry out other program operations while it runs, set block to False.

Returns a function that stops the daemon thread when called. (This is really only useful when block is False, since otherwise the function will never return anything until an exception occurs.)

VoiceRobotifier.start_autodetect(energy_threshold: Union[float, None] = None, key_quit: Union[int, str] = 'esc', block: bool = True) -> Callable[None, None]

Starts the VoiceRobotifier in autodetect mode -- it will wait for the audio input to have a greater energy level than energy_threshold before processing it. This value should generally be from 150 to 3500 in most cases. If energy_threshold is None, the input device's current energy level will be sampled to auto-determine an energy level.

The key_quit and block arguments as well as the returned function act the same as those in VoiceRobotifier.start.

VoiceRobotifier.set_voice_name(voice_name: str) -> None

Sets the voice that should be used for generating text-to-speech audio. voice_name should be a name from the list returned by VoiceRobotifier.list_voices.

VoiceRobotifier.set_voice_rate(voice_rate: int) -> None

Sets the speed of the voice used for text-to-speech in words per minute. 200 is the default.

VoiceRobotifier.list_voice_names() -> List[str]

Returns a list of the names of all text-to-speech voices available through DECtalk. They can be passed as arguments to VoiceRobotifier.set_voice.

VoiceRobotifier.set_input_device(device_name: str) -> None

Sets the device used to get audio for speech recognition purposes. device_name should be a name from the list returned by VoiceRobotifier.list_device_names. If this method is never called on a VoiceRobotifier object, it will use the system's default input device.

VoiceRobotifier.set_output_device(device_name: str) -> None

Sets the device used to output the generated text-to-speech audio. device_name should be a name from the list returned by VoiceRobotifier.list_device_names. If this method is never called on a VoiceRobotifier object, it will use the system's default output device.

VoiceRobotifier.list_device_names() -> List[str]

Returns a list of device names on the system that can be passed as arguments to VoiceRobotifier.set_input_device and VoiceRobotifier.set_output_device

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
voice_robotifier-1.1-py3-none-any.whl (511.3 kB) Copy SHA256 hash SHA256 Wheel py3
voice_robotifier-1.1.tar.gz (514.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page