
Jbark는 원래 Bark Texteech Project [https://github.com/suno-ai/bark]의 기능을 바탕으로 간단한 음성 변환 기능을 추가하는 강력한 Python 라이브러리입니다. 텍스트에서 고품질 음성을 생성하고 기본 음성 특성을 추출하며 이러한 특성을 생성 된 오디오에 적용하기위한 완벽한 인터페이스를 제공합니다.
jbark의 주요 기능은 다음과 같습니다.
가상 어시스턴트를 개발하거나 오디오 북을 만들거나 유연하고 고품질의 음성 합성이 필요한 프로젝트에서 작업하든 JBARK는 아이디어를 활성화시키는 데 필요한 도구를 제공합니다.
Jbark를 설치하려면 다음 단계를 따르십시오.
시스템에 Python 3.7 이상이 설치되어 있는지 확인하십시오.
Jbark 및 그 종속성을 설치하십시오.
pip install jbark numpy torch scipy librosa resampy
참고 : Jbark는 기본적으로 계산에 CPU를 사용합니다. GPU 가속도를 사용하려면 적절한 Cuda 지원 버전의 Pytorch를 설치하십시오.
JBark 사용 방법의 기본 예는 다음과 같습니다.
from jbark import JBark
# Initialize jBark
jbark = JBark ()
# Generate audio from text
text = "Hello, this is a test of jBark text-to-speech."
output_path = "output.wav"
audio_array = jbark . generate_audio ( text , output_path )
# Extract voice characteristics
sample_audio = "sample_voice.wav"
voice_chars = jbark . simple_voice_clone ( sample_audio )
# Generate audio with simple voice conversion
converted_text = "This is speech using simple voice conversion."
converted_output_path = "converted_output.wav"
converted_audio = jbark . generate_with_cloned_voice ( converted_text , voice_chars , converted_output_path )
# List supported languages
languages = jbark . list_supported_languages ()
print ( "Supported languages:" , languages )이 예제는 음성 생성, 음성 특성 추출 및 생성 된 오디오에 간단한 음성 변환을 적용하는 기본 워크 플로를 보여줍니다.
Jbark는 사용자 정의를위한 몇 가지 옵션을 제공합니다.
경고 억제 : 기본적으로 Jbark는 일반적인 경고를 억제합니다. 이 동작은 내부적으로 처리되며 사용자 구성이 필요하지 않습니다.
음성 사전 설정 : 오디오를 생성 할 때 음성 사전 설정을 지정할 수 있습니다.
audio_array = jbark . generate_audio ( text , history_prompt = "v2/en_speaker_6" ) 음성 변환 매개 변수 : JBark 클래스에서 simple_voice_conversion 메소드를 수정하여 피치 시프트 및 템포 조정 강도를 조정할 수 있습니다.
__init__(self)Jbark 인스턴스를 초기화하고 경고를 억제하며 필요한 모델을 사전로드합니다.
generate_audio(self, text_prompt: str, output_path: str = None, history_prompt: str = None) -> numpy.ndarray주어진 텍스트 프롬프트에서 오디오를 생성합니다.
text_prompt : 음성으로 전환 할 텍스트.output_path : 선택 사항. 생성 된 오디오를 저장하는 경로.history_prompt : 선택 사항. 사용할 음성 사전 설정.반환 : 오디오 데이터가 포함 된 Numpy 배열.
simple_voice_clone(self, audio_path: str) -> dict오디오 샘플에서 기본 음성 특성을 추출합니다.
audio_path : 음성 특성 추출을위한 오디오 샘플로가는 경로.반품 : 기본 음성 특성 (피치 및 템포)을 포함하는 사전.
generate_with_cloned_voice(self, text_prompt: str, voice_characteristics: dict, output_path: str) -> numpy.ndarray추출 된 음성 특성을 기반으로 간단한 음성 변환을 사용하여 오디오를 생성합니다.
text_prompt : 음성으로 전환 할 텍스트.voice_characteristics : 음성 특성을 포함하는 사전 (피치 및 템포).output_path : 생성 된 오디오를 저장하는 경로.반환 : 오디오 데이터가 포함 된 Numpy 배열.
simple_voice_conversion(self, audio: numpy.ndarray, voice_characteristics: dict) -> numpy.ndarray주어진 음성 특성에 따라 입력 오디오에 간단한 음성 변환을 적용합니다.
audio : 입력 오디오 배열.voice_characteristics : 음성 특성을 포함하는 사전 (피치 및 템포).반환 : 변환 된 오디오 배열.
custom_time_stretch(self, audio: numpy.ndarray, rate: float) -> numpy.ndarray리샘플링을 사용한 사용자 정의 시간 스트레칭 기능.
audio : 입력 오디오 배열.rate : 시간 스트레치율.반환 : 시간 스트레치 된 오디오 배열.
list_supported_languages(self) -> dict지원되는 언어 사전을 반환합니다.
Jbark는 모듈성 및 확장 성을 염두에두고 설계되었습니다. 주요 구성 요소는 다음과 같습니다.
라이브러리는 정면 패턴을 따릅니다. 여기서 Jbark 클래스는 기본 텍스트 음성 및 음성 변환 시스템에 대한 단순화 된 인터페이스를 제공합니다.
Jbark에는 두 개의 테스트 스위트가 있습니다.
기본 테스트 스위트 ( test_jbark.py ) : 기본 테스트 스위트를 실행하려면 :
python test_jbark.py
대화식 메뉴를 시작하여 JBark 라이브러리의 다양한 기능을 테스트 할 수 있습니다.
확장 된 테스트 스위트 ( test2.py ) : 확장 된 테스트 스위트를 실행하려면 :
python test2.py
이 제품군은 오디오 생성, 음성 복제, 음성 변환, 언어 지원, 오류 처리 및 성능 테스트의 변형을 포함하여보다 포괄적 인 테스트를 제공합니다.
디버깅을 위해 Python의 내장 pdb 모듈 또는 Pycharm 또는 VSCODE와 같은 IDE를 사용할 수 있습니다.
Q : 오디오 생성이 느린 이유는 무엇입니까? A : 오디오 생성 속도는 하드웨어에 따라 다릅니다. Jbark는 기본적으로 계산에 CPU를 사용합니다. 더 빠른 처리를 위해보다 강력한 CPU가있는 기계를 사용하거나 GPU 지원을 구현하는 것을 고려하십시오.
Q : 간단한 음성 변환은 얼마나 효과적입니까? A : Jbark의 간단한 음성 변환 기능은 기본 피치 및 템포 조정을 제공합니다. 일부 음성 특성을 변경할 수는 있지만 고급 방법과 동일한 수준의 음성 복제 품질을 제공하지 않습니다. 결과는 입력 텍스트 및 대상 음성 특성에 따라 다를 수 있습니다.
Q : 음성 변환 품질을 어떻게 개선 할 수 있습니까? A : 음성 특성 추출을 위해 고품질 오디오 샘플을 사용하십시오. 더 나은 결과를 위해 simple_voice_conversion 메소드에서 피치 이동 및 템포 조정 매개 변수 조정을 실험 할 수도 있습니다.
Q : 다른 언어 모델을 어떻게 사용합니까? A : Jbark는 여러 언어를 지원합니다. 히스토리 프롬프트에서 적절한 언어 코드를 사용하여 오디오를 생성 할 때 원하는 언어를 지정할 수 있습니다. 예를 들어:
audio = jbark . generate_audio ( "Bonjour!" , history_prompt = "v2/fr_speaker_1" ) 지원되는 언어 및 해당 코드 목록의 경우 list_supported_languages() 메소드를 사용하십시오.
더 많은 질문과 답변을 보려면 Github 문제 페이지를 방문하거나 커뮤니티 포럼에 가입하십시오.
