Генерация речевого потока из текста через библиотеку RHVOICE без повторного инициализации двигателя. Это очень быстро и удобнее, чем Call Rhvoice-тест.
Поддерживаемые аудиоформаты: wav , mp3 , opus , flac и pcm (необработанный вывод RHVOICE).
pip3 install rhvoice-wrapper
Этот пакет не обеспечивает сам rhvoice. Вы должны строить (или установить) rhvoice, языки и голоса вручную. В Windows вы должны указать пути для работы.
Предупреждение ! rhvoice-wrapper-bin не работает в MacOS , устанавливайте RHVOICE вручную.
Вместо rhvoice вы можете установить Rhvoice-Wrapper-bin. Это лучший способ для Windows. Если установлен rhvoice-wrapper-bin , его библиотеки и данные будут использоваться автоматически.
pip3 install rhvoice-wrapper[rhvoice]
Сначала создать объект TTS:
from rhvoice_wrapper import TTS
tts = TTS ( threads = 1 ) Вы можете установить параметры при создании или через среды переменных (верхний регистр). Опции переопределяют переменные среды. Чтобы установить значение по умолчанию. Используйте None :
1 , создал один объект потока, если больше запуска в многопроцессорном режиме и создайте много процессов. По умолчанию 1 .True двигатели работают в режиме многопроцестрой, если False в режиме потоков. По умолчанию False if threads == 1, иначе True . Режим потоков и потоки> 1 вызывает неисправности сегментации или может вернуть поврежденные данныеlibRHVoice.so в linux, libRHVoice.dylib в macos и RHVoice.dll в Windows./usr/local/share/RHVoice ./usr/local/etc/RHVoice .[] .lame , необязательно. Хронный должен присутствовать для поддержки mp3 . По умолчанию lame .opusenc , необязательно. Файл должен присутствовать для поддержки opus . По умолчанию opusenc .flac , необязательно. Файл должен присутствовать для поддержки flac . По умолчанию flac .True не вывод информации. По умолчанию False .say вернет один большой кусок, форматы, отличные от wav и pcm будут генерироваться гораздо медленнее. По умолчанию True .Запустите генератор синтеза и получите аудиоданные, 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Или получить все аудиоданные в одном большом куске:
data = tts . get ( 'Hello world!' , format_ = 'wav' )
print ( 'data size: ' , len ( data ), ' bytes' )
subprocess . check_output ([ 'aplay' , '-q' ], input = data )Или просто сохранить в файле:
tts . to_file ( filename = 'esperanto.ogg' , text = 'Saluton mondo' , voice = 'spomenka' , format_ = 'opus' , sets = None ) format_ - вывод аудио -формат. Должен присутствовать в tts.formats .
voice - это голос динамика. Должен присутствовать в tts.voice_profiles . voice='Voice', sets=None ровный voice=None, sets={'voice_profile': 'Voice'} , voice больше приоритета.
sets могут устанавливать как дикта, содержащий параметры синтеза, как в set_params. Эти параметры работают только для текущей фразы. По умолчанию None .
Если buff равен None or 0 , для PCM и WAV -кусков возвращаются как есть (вероятно, немного быстрее). Для других использовался размер чанка по умолчанию (4 киб).
Если text итерабильный объект, все его фрагменты будут обрабатывать последовательно. Это хороший метод для обработки невероятно больших текстов. Помните, что генератор не может быть передан в другой процесс. Пример:
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Изменения настройки голосового синтезатора:
tts . set_params ( ** kwargs ) Разрешить: voice_profile , absolute_rate , absolute_pitch , absolute_volume , relative_rate , relative_pitch , relative_volume , punctuation_mode , punctuation_list , capitals_mode , flags . Смотрите документацию RHVOICE для деталей.
Вернуть True если изменить, иначе False .
Получите настройки синтезатора голоса:
tts . get_params ( param = None ) Если PARAM None возвращает все настройки в dict , иное значение параметра по имени. Если параметр не найден вернуть None .
Присоединяйтесь к потоку или процессам. Не используйте объект после присоединения:
tts . join ()TTS.formats : Список поддерживаемых форматов, pcm и wav всегда присутствуют.TTS.thread_count : количество потоков синтеза.TTS.process : Если True , TTS работает в многопроцестройном режиме.TTS.voices : список поддерживаемых голосов.TTS.voice_profiles : список поддерживаемых профилей голоса.TTS.voices_info : словарь поддерживаемых голосов с информацией о голосах.TTS.api_version : поддерживаемая версия библиотеки RHVOICE.TTS.lib_version : версия библиотеки RHVOICE. Если не в rhvoice_wrapper.rhvoice_proxy.SUPPORT , может неверная работа.TTS.cmd : словарь внешних вызовов, как есть.