
JBark เป็นห้องสมุด Python ที่ทรงพลังซึ่งสร้างขึ้นตามความสามารถของโครงการ Bark Text-to-Speech ดั้งเดิม [https://github.com/suno-ai/bark] เพิ่มคุณสมบัติการแปลงเสียงง่าย ๆ มันให้อินเทอร์เฟซที่ราบรื่นสำหรับการสร้างคำพูดที่มีคุณภาพสูงจากข้อความการแยกลักษณะเสียงพื้นฐานและการใช้คุณสมบัติเหล่านี้กับเสียงที่สร้างขึ้น
คุณสมบัติที่สำคัญของ JBark ได้แก่ :
ไม่ว่าคุณจะพัฒนาผู้ช่วยเสมือนจริงการสร้างหนังสือเสียงหรือทำงานในโครงการใด ๆ ที่ต้องใช้การสังเคราะห์การพูดที่ยืดหยุ่นและมีคุณภาพสูง JBARK ให้เครื่องมือที่คุณต้องการนำความคิดของคุณมาสู่ชีวิต
ในการติดตั้ง JBark ทำตามขั้นตอนเหล่านี้:
ตรวจสอบให้แน่ใจว่าคุณติดตั้ง Python 3.7 หรือใหม่กว่าในระบบของคุณ
ติดตั้ง JBark และการพึ่งพา:
pip install jbark numpy torch scipy librosa resampy
หมายเหตุ: JBark ใช้ CPU สำหรับการคำนวณตามค่าเริ่มต้น หากคุณต้องการใช้การเร่งความเร็ว GPU ตรวจสอบให้แน่ใจว่าได้ติดตั้ง Pytorch เวอร์ชันที่เปิดใช้งาน CUDA ที่เหมาะสม
นี่คือตัวอย่างพื้นฐานของวิธีการใช้ 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 ระงับคำเตือนทั่วไป พฤติกรรมนี้ได้รับการจัดการภายในและไม่ต้องการการกำหนดค่าผู้ใช้
Voice Presets : เมื่อสร้างเสียงคุณสามารถระบุเสียงที่ตั้งไว้ล่วงหน้าได้:
audio_array = jbark . generate_audio ( text , history_prompt = "v2/en_speaker_6" ) พารามิเตอร์การแปลงเสียง : คุณสามารถปรับความแข็งแรงของการเปลี่ยนระยะห่างและการปรับจังหวะโดยการปรับเปลี่ยนวิธี simple_voice_conversion ในคลาส JBark
__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 : เป็นทางเลือก เสียงล่วงหน้าที่จะใช้Returns: NumPy Array ที่มีข้อมูลเสียง
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 : เส้นทางที่จะบันทึกเสียงที่สร้างขึ้นReturns: NumPy Array ที่มีข้อมูลเสียง
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
ชุดนี้ให้การทดสอบที่ครอบคลุมมากขึ้นรวมถึงการเปลี่ยนแปลงในการสร้างเสียงการโคลนเสียงการแปลงเสียงการสนับสนุนภาษาการจัดการข้อผิดพลาดและการทดสอบประสิทธิภาพ
สำหรับการดีบักคุณสามารถใช้โมดูล pdb ในตัวของ Python หรือ IDE เช่น Pycharm หรือ Vscode
ถาม: ทำไมการสร้างเสียงจึงช้า? ตอบ: ความเร็วในการสร้างเสียงขึ้นอยู่กับฮาร์ดแวร์ของคุณ JBark ใช้ CPU สำหรับการคำนวณโดยค่าเริ่มต้น สำหรับการประมวลผลที่เร็วขึ้นให้พิจารณาใช้เครื่องที่มี CPU ที่ทรงพลังกว่าหรือใช้การสนับสนุน GPU
ถาม: การแปลงเสียงง่าย ๆ มีประสิทธิภาพแค่ไหน? ตอบ: คุณลักษณะการแปลงเสียงง่าย ๆ ใน JBark ให้การปรับระดับเสียงขั้นพื้นฐานและจังหวะ ในขณะที่มันสามารถเปลี่ยนลักษณะเสียงบางอย่าง แต่ก็ไม่ได้ให้คุณภาพการโคลนเสียงในระดับเดียวกันกับวิธีการขั้นสูงมากขึ้น ผลลัพธ์อาจแตกต่างกันไปขึ้นอยู่กับข้อความอินพุตและลักษณะเสียงเป้าหมาย
ถาม: ฉันจะปรับปรุงคุณภาพการแปลงเสียงได้อย่างไร ตอบ: ใช้ตัวอย่างเสียงคุณภาพสูงสำหรับการสกัดลักษณะเสียงโดยใช้คำพูดที่ชัดเจนและเสียงพื้นหลังน้อยที่สุด นอกจากนี้คุณยังสามารถทดสอบด้วยการปรับพารามิเตอร์การเลื่อนระดับเสียงและพารามิเตอร์การปรับจังหวะในวิธี simple_voice_conversion เพื่อผลลัพธ์ที่ดีกว่า
ถาม: ฉันจะใช้แบบจำลองภาษาที่แตกต่างกันได้อย่างไร? ตอบ: JBark รองรับหลายภาษา คุณสามารถระบุภาษาที่ต้องการเมื่อสร้างเสียงโดยใช้รหัสภาษาที่เหมาะสมในพรอมต์ประวัติ ตัวอย่างเช่น:
audio = jbark . generate_audio ( "Bonjour!" , history_prompt = "v2/fr_speaker_1" ) สำหรับรายการภาษาที่รองรับและรหัสของพวกเขาใช้วิธี list_supported_languages()
สำหรับคำถามและคำตอบเพิ่มเติมโปรดไปที่หน้าปัญหา GitHub ของเราหรือเข้าร่วมฟอรัมชุมชนของเรา
