High-level interface for RHVoice library
Project description
High-level interface for RHVoice library
Generating speech stream from text via RHVoice library without re-initializing engine. This very fast and more convenient than call RHVoice-test.
Supported audio formats: wav
, mp3
, opus
, flac
and pcm
(raw RHVoice output).
Install
pip3 install rhvoice-wrapper
This package does NOT provide RHVoice itself. You must be build (or install) RHVoice, languages and voices manually. In Windows you must specify the paths for work.
rhvoice-wrapper-bin
Warning! rhvoice-wrapper-bin
not working in macOS, install RHVoice manually.
Instead of RHVoice you may install rhvoice-wrapper-bin. This is best way for Windows.
If the rhvoice-wrapper-bin
is installed, its libraries and data will be used automatically.
pip3 install rhvoice-wrapper[rhvoice]
Documentation
First create TTS object:
from rhvoice_wrapper import TTS
tts = TTS(threads=1)
You may set options when creating or through variable environments (UPPER REGISTER). Options override variable environments. To set the default value use None
:
- threads or THREADED. If equal to
1
, created one thread object, if more running in multiprocessing mode and create a lot of processes. Default1
. - force_process or PROCESSES_MODE: If
True
engines run in multiprocessing mode, ifFalse
in threads mode. DefaultFalse
if threads == 1, elseTrue
. Threads mode and threads > 1 causes a segmentation faults or may return corrupted data - lib_path or RHVOICELIBPATH: Path to RHVoice library. Default
libRHVoice.so
in Linux,libRHVoice.dylib
in macOS andRHVoice.dll
in Windows. - data_path or RHVOICEDATAPATH: Path to folder, containing voices and languages folders. Default
/usr/local/share/RHVoice
. - config_path or RHVOICECONFIGPATH: Path to folder, contain RHVoice.conf in linux and RHVoice.ini in windows. Default
/usr/local/etc/RHVoice
. - resources or RHVOICERESOURCES: A list of paths to language and voice data. It should be used when it is not possible to collect all the data in one place. Default
[]
. - lame_path or LAMEPATH: Path to
lame
, optional. Lame must be present formp3
support. Defaultlame
. - opus_path or OPUSENCPATH: Path to
opusenc
, optional. File must be present foropus
support. Defaultopusenc
. - flac_path or FLACPATH: Path to
flac
, optional. File must be present forflac
support. Defaultflac
. - quiet or QUIET: If
True
don't info output. DefaultFalse
. - stream or RHVOICESTREAM: Processing and sending chunks soon as possible, otherwise processing and sending only full data including length:
say
will return one big chunk, formats other thanwav
andpcm
will be generated much slower. DefaultTrue
.
Usage
Start synthesis generator and get audio data, chunk by chunk:
def generator_audio(text, voice='anna', format_='wav', buff=4096, sets=None):
with tts.say(text, voice, format_, buff, sets) as gen:
for chunk in gen:
yield chunk
Or get all audio data in one big chunk:
data = tts.get('Hello world!', format_='wav')
print('data size: ', len(data), ' bytes')
subprocess.check_output(['aplay', '-q'], input=data)
Or just save to file:
tts.to_file(filename='esperanto.ogg', text='Saluton mondo', voice='spomenka', format_='opus', sets=None)
format_
is output audio format. Must be present in tts.formats
.
voice
is a voice of speaker. Must be present in tts.voice_profiles
.
voice='Voice', sets=None
equal voice=None, sets={'voice_profile': 'Voice'}
, voice
more priority.
sets
may set as dict containing synthesis parameters as in set_params.
This parameters only work for current phrase. Default None
.
If buff
equal None or 0
, for pcm and wav chunks return as is (probably little faster).
For others used default chunk size (4 KiB).
Text as iterable object
If text
iterable object, all its fragments will processing successively.
This is a good method for processing incredibly large texts.
Remember, the generator cannot be transferred to another process. Example:
def _text():
with open('wery_large_book.txt') as fp:
text = fp.read(5000)
while text:
yield text
text = fp.read(5000)
def generator_audio():
with tts.say(_text()) as gen:
for chunk in gen:
yield chunk
Other methods
set_params
Changes voice synthesizer settings:
tts.set_params(**kwargs)
Allow: voice_profile
, absolute_rate
, absolute_pitch
, absolute_volume
, relative_rate
, relative_pitch
, relative_volume
, punctuation_mode
, punctuation_list
, capitals_mode
, flags
. See RHVoice documentation for details.
Return True
if change, else False
.
get_params
Get voice synthesizer settings:
tts.get_params(param=None)
If param is None
return all settings in dict
, else parameter value by name. If parameter not found return None
.
join
Join thread or processes. Don't use object after join:
tts.join()
Properties
TTS.formats
: List of supported formats,pcm
andwav
always present.TTS.thread_count
: Number of synthesis threads.TTS.process
: IfTrue
, TTS running in multiprocessing mode.TTS.voices
: List of supported voices.TTS.voice_profiles
: List of supported voice profiles.TTS.voices_info
: Dictionary of supported voices with voices information.TTS.api_version
: Supported RHVoice library version.TTS.lib_version
: RHVoice library version. If not inrhvoice_wrapper.rhvoice_proxy.SUPPORT
, may incorrect work.TTS.cmd
: Dictionary of external calls, as it is.
Examples
Requirements
- OS: Linux, Windows
- RHVoice library 0.7.2 or above, languages and voices
- Python 3.5 +
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file rhvoice-wrapper-0.8.0.tar.gz
.
File metadata
- Download URL: rhvoice-wrapper-0.8.0.tar.gz
- Upload date:
- Size: 28.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d28c19a584ee803d1368b8f8b55218a7f611072d103102472aaaa101b628b28 |
|
MD5 | 786db2aa301ac00241aa29049dfc7aa1 |
|
BLAKE2b-256 | ced5cd09b8abbe4da0fd22693ad57bcd56f4108e043d87cf9de9295b70804906 |
File details
Details for the file rhvoice_wrapper-0.8.0-py3-none-any.whl
.
File metadata
- Download URL: rhvoice_wrapper-0.8.0-py3-none-any.whl
- Upload date:
- Size: 27.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a49f16cf257cefda127d0369c278a56b7d77a5d03ca85e964bc45dd41f2fd84 |
|
MD5 | 053d9c9ee29e42ebb57c49640fe60e3c |
|
BLAKE2b-256 | 48af28baf609c910907273a59a4576534263855aee18e8eced670ee45012ef4f |