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. Off the shelf supports wav
, mp3
and opus
.
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. Threading mode is not race condition safe, multiprocessing mode is safe. Default1
. - force_process: If
True
, force using multiprocessing mode. DefaultFalse
. - 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: List of paths, optional. I do not know what is this. Default:
['/usr/local/etc/RHVoice/dicts/Russian/']
. - 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
.
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
.
benchmarks
Synthetic benchmark. First return string 'start...', then results every 30 seconds. Works only in multiprocessing mode. Example:
from rhvoice_wrapper import TTS
tts = TTS(threads=24)
end_in = 5
for result in tts.benchmarks():
print(result)
end_in -= 1
if not end_in:
break
tts.join()
join
Join thread or processes. Don't use object after join:
tts.join()
Properties
TTS.formats
: List of supported formats,wav
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.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b337918dfd8d856770dc984193e3e72247c4bc6635f5db60f25057369f044870 |
|
MD5 | f210de205a0149c852f61a24b68bf100 |
|
BLAKE2b-256 | 5df570c07d0494ad1b2e345a20d535f996e883ec3adacc9db06a524a553568fe |