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.

Source Distribution

voice_robotifier-1.1.tar.gz (514.0 kB view hashes)

Uploaded Source

Built Distribution

voice_robotifier-1.1-py3-none-any.whl (511.3 kB view hashes)

Uploaded Python 3

Supported by

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