High-level interface for RHVoice library
Project description
High-level interface for RHVoice library
Generate speech stream from text 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 NOT provide RHvoice. 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-bin
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
. - 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
.
Usage
Start synthesis generator and get audio data, chunk by chunk:
def generator_audio(text, voice, audio_format, sets):
with tts.say(text, voice, audio_format, sets=sets) as gen:
for chunk in gen:
yield chunk
Or just save to file:
tts.to_file(filename='esperanto.ogg', text='Saluton mondo', voice='spomenka', format_='opus', sets=None)
sets
may set as dict containing synthesis parameters as in set_params.
This parameters only work for current phrase. Default None
.
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(voice, audio_format, sets):
with tts.say(_text(), voice, audio_format, sets=sets) as gen:
for chunk in gen:
yield chunk
Other methods
set_params
Changes voice synthesizer settings:
tts.set_params(**kwargs)
Allow: absolute_rate, relative_rate, absolute_pitch, relative_pitch, absolute_volume, relative_volume, punctuation_mode, capitals_mode
. 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 as numeric
. 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.voices_info
: Dictionary of supported voices with voices information.TTS.api_version
: Supported RHVoice library version. If different fromlib_version
, may incorrect work.TTS.lib_version
: RHVoice library version.TTS.cmd
: Dictionary of external calls, as it is.
Examples
Requirements
- OS: Linux, Windows, macOS
- RHvoice library, languages and voices
- Python 3.4 +
Links
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
Hashes for rhvoice_wrapper-0.3.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8bb7c6bcb403d42d99847a62a21ac015b95d46b29b64db07d0a3234ab2c40b5 |
|
MD5 | 6a87b43ade734daa4b56ce9d327580a8 |
|
BLAKE2b-256 | 952dea8fdb9c373ebe49e7a83fe5d5bc5b6c6cbbdba11eb7a8a13f0d45f53775 |