엔진을 다시 시작하지 않고 Rhvoice 라이브러리를 통해 텍스트에서 음성 스트림을 생성합니다. 이것은 rhvoice-test를 호출하는 것보다 매우 빠르고 편리합니다.
지원되는 오디오 형식 : wav , mp3 , opus , flac 및 pcm (RAW Rhvoice 출력).
pip3 install rhvoice-wrapper
이 패키지는 Rhvoice 자체를 제공하지 않습니다 . 수동으로 rhvoice, 언어 및 음성을 빌드 (또는 설치)해야합니다. Windows에서는 작업 경로를 지정해야합니다.
경고 ! rhvoice-wrapper-bin MacOS 에서 작동하지 않으며 Rhvoice를 수동으로 설치하십시오.
Rhvoice 대신 Rhvoice-Wrapper-Bin을 설치할 수 있습니다. 이것은 창에 가장 좋은 방법입니다. rhvoice-wrapper-bin 설치되면 라이브러리와 데이터가 자동으로 사용됩니다.
pip3 install rhvoice-wrapper[rhvoice]
먼저 TTS 개체 생성 :
from rhvoice_wrapper import TTS
tts = TTS ( threads = 1 ) 가변 환경을 만들 때 또는 가변 환경을 통해 옵션을 설정할 수 있습니다 (상단 레지스터). 옵션은 가변 환경을 무시합니다. 기본값을 설정하려면 사용 None .
1 과 같으면 하나의 스레드 객체를 생성하고 멀티 프로세싱 모드에서 더 많이 실행하고 많은 프로세스를 만듭니다. 기본 1 .True 엔진이 멀티 프로세싱 모드에서 실행되는 경우 스레드 모드에서 False 경우. 스레드 == 1 인 경우 기본값 False , 그렇지 않으면 True . 스레드 모드 및 스레드> 1은 분할 결함을 일으키거나 손상된 데이터를 반환 할 수 있습니다.libRHVoice.so linux, libRHVoice.dylib in 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 .합성 생성기를 시작하고 청크로 청크 오디오 데이터를 얻으십시오.
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 equal voice=None, sets={'voice_profile': 'Voice'} , voice More Priority.
sets set_params에서와 같이 합성 매개 변수를 포함하는 dict로 설정 될 수 있습니다. 이 매개 변수는 현재 문구에만 작동합니다. 기본값 None .
buff None or 0 경우 PCM 및 WAV 청크의 경우 그대로 다시 돌아옵니다 (아마도 조금 더 빠릅니다). 다른 사람들의 경우 기본 청크 크기 (4 KIB)를 사용했습니다.
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 에서 모든 설정을 반환하고, 그렇지 않으면 Parameter 값은 이름별로 반환합니다. 매개 변수를 찾지 못한 경우 return None .
스레드 또는 프로세스에 가입하십시오. 가입 후 객체를 사용하지 마십시오.
tts . join ()TTS.formats : 지원되는 형식, pcm 및 wav 목록은 항상 존재합니다.TTS.thread_count : 합성 스레드 수.TTS.process : True 경우 다중 프로세싱 모드에서 실행됩니다.TTS.voices : 지원되는 목소리 목록.TTS.voice_profiles : 지원되는 음성 프로파일 목록.TTS.voices_info : 음성 정보가 포함 된 지원되는 목소리 사전.TTS.api_version : 지원되는 Rhvoice 라이브러리 버전.TTS.lib_version : Rhvoice 라이브러리 버전. rhvoice_wrapper.rhvoice_proxy.SUPPORT 에 있지 않으면 잘못된 작업을 할 수 있습니다.TTS.cmd : 그대로 외부 통화 사전.