ข้อจำกัดความรับผิดชอบ: นี่ไม่ใช่ผลิตภัณฑ์ของ Google อย่างเป็นทางการ
Voice Builder เป็นเครื่องมือสร้างเสียงแบบ text-to-speech (TTS) OpenSource ที่มุ่งเน้นไปที่ความเรียบง่ายความยืดหยุ่นและการทำงานร่วมกัน เครื่องมือของเราช่วยให้ทุกคนที่มีทักษะคอมพิวเตอร์ขั้นพื้นฐานสามารถทำการทดลองฝึกด้วยเสียงและฟังเสียงสังเคราะห์ที่เกิดขึ้น
เราหวังว่าเครื่องมือนี้จะช่วยลดอุปสรรคในการสร้างเสียงใหม่และเร่งการวิจัย TTS โดยการทดลองเร็วขึ้นและการทำงานร่วมกันแบบสหวิทยาการได้ง่ายขึ้น เราเชื่อว่าเครื่องมือของเราสามารถช่วยปรับปรุงการวิจัย TTS โดยเฉพาะอย่างยิ่งสำหรับภาษาที่มีทรัพยากรต่ำซึ่งจำเป็นต้องมีการทดลองมากขึ้นเพื่อให้ได้ประโยชน์สูงสุดจากข้อมูลที่ จำกัด
สิ่งพิมพ์ - https://ai.google/research/pubs/pub46977
สร้างโครงการบน Google Cloud Platform (GCP)
หากคุณยังไม่มีบัญชีโปรดสร้างด้วยตัวคุณเอง
เปิดใช้งานการเรียกเก็บเงินและขอโควต้าเพิ่มเติมสำหรับโครงการของคุณ
ติดตั้ง Docker
ไปที่ firebase.com และนำเข้าโครงการไปยังแพลตฟอร์ม Firebase
หากคุณยังไม่มีบัญชีโปรดสร้างด้วยตัวคุณเอง
ติดตั้งเครื่องมือสาย Gcloud CMD โดยการติดตั้ง Cloud SDK
ติดตั้ง node.js
ติดตั้งเครื่องมือสายไฟ Firebase CMD
เปิดใช้งานบริการ GCP ทั้งหมดต่อไปนี้:
ใช้ URL นี้เพื่อเปิดใช้งานทั้งหมดในครั้งเดียว
โดยปกติจะใช้เวลาสองสามนาทีในการเปิดใช้งาน APIs และ GCP จะนำคุณไปยังหน้าอื่นเพื่อกำหนดข้อมูลรับรองสำหรับสิ่งเหล่านี้ โปรดข้ามและปิดหน้าเว็บเพราะเราไม่ต้องการการตั้งค่าข้อมูลรับรองใหม่ใด ๆ
[ไม่บังคับ] การตั้งค่าผู้ส่งออกข้อมูลที่กำหนดเองของคุณเอง
หากคุณยังไม่ได้ข้อกำหนดเบื้องต้นทั้งหมดโปรดทำก่อนที่จะดำเนินการต่อไปในขั้นตอนต่อไปนี้
โคลนโครงการนี้ไปยังไดเรกทอรีปัจจุบันของคุณโดย:
git clone https://github.com/google/voice-builder.git && cd voice-builder
หากคุณยังไม่ได้ลงชื่อเข้าใช้บัญชีของคุณผ่าน Gcloud โปรดเข้าสู่ระบบโดย:
gcloud auth login
นอกจากนี้หากคุณยังไม่ได้ลงชื่อเข้าใช้บัญชีของคุณผ่าน Firebase โปรดเข้าสู่ระบบโดย:
firebase login --no-localhost
Open deploy.sh และแก้ไขตัวแปรต่อไปนี้:
สร้างถัง GCS สำหรับตัวสร้างเสียงเพื่อจัดเก็บข้อมูลงานแต่ละรายการ
./deploy.sh initial_setup
ปรับใช้ส่วนประกอบฟังก์ชันคลาวด์
./deploy.sh cloud_functions
ปรับใช้ส่วนประกอบ UI
./deploy.sh ui create
หลังจากการปรับใช้คุณควรได้รับ IP ที่คุณสามารถเข้าถึงได้จากผลลัพธ์ของบรรทัดคำสั่ง (external_ip) คุณสามารถเข้าถึงอินสแตนซ์ของตัวสร้างเสียงได้โดยไปที่ http: // external_ip: 3389 ในเบราว์เซอร์ของคุณ
ในขั้นตอนนี้คุณควรมีส่วนประกอบทั้งหมดและสามารถเข้าถึง UI ได้ที่ http: // external_ip: 3389 VoiceBuilder เริ่มต้นให้คุณมีสองตัวอย่าง TTS Engines (Festival and Merlin) และข้อมูลสาธารณะจาก Resource Respo
คุณสามารถทดสอบได้ว่าทุกอย่างทำงานได้อย่างถูกต้องโดยการสร้างเสียงใหม่ด้วยตัวเองโดยใช้เครื่องมือเทศกาลที่เราจัดเตรียมไว้โดย:
ผู้ส่งออกข้อมูลเป็นอีกองค์ประกอบเพิ่มเติมที่คุณสามารถเพิ่มลงในระบบ โดยปกติแล้วตัวสร้างเสียงสามารถทำงานได้โดยไม่ต้องส่งออกข้อมูล หากไม่มีมันตัวสร้างเสียงจะใช้ไฟล์อินพุตตามที่เป็นอยู่
อย่างไรก็ตามในบางกรณีคุณต้องการใช้การแปลงไฟล์อินพุตของคุณก่อนที่จะป้อนเข้าสู่อัลกอริทึม TTS ตัวอย่างเช่น:
Voice Builder ช่วยให้คุณมีความยืดหยุ่นในการเพิ่มผู้ส่งออกข้อมูลของคุณเองซึ่งคุณสามารถใช้ในการจัดการข้อมูลก่อนที่จะเรียกใช้อัลกอริทึม TTS จริง ผู้ส่งออกข้อมูลที่กำหนดเองของคุณจะได้รับข้อกำหนดเสียงที่มีตำแหน่งไฟล์อัลกอริทึม TTS ที่เลือกพารามิเตอร์การปรับค่า ฯลฯ คุณสามารถใช้ข้อมูลเหล่านี้เพื่อจัดการ/แปลงข้อมูลของคุณ ในท้ายที่สุดผู้ส่งออกข้อมูลของคุณควรใส่ไฟล์ที่จำเป็นทั้งหมดลงในโฟลเดอร์งานที่กำหนดเพื่อเรียกใช้อัลกอริทึม TTS จริงที่จะเรียกใช้
ประการแรกคุณต้องให้ผู้ส่งออกข้อมูลของคุณเข้าถึงถัง GCS
เปิด /deploy.sh และแก้ไขตัวแปรต่อไปนี้:
เรียกใช้คำสั่งเพื่อให้ data_exporter_service_account การเข้าถึง ACL ไปยังถัง GCS
./deploy.sh acl_for_data_exporter
ประการที่สองคุณต้องตั้งค่า URL ของผู้ส่งออกข้อมูลของคุณใน config.js เพื่อให้เครื่องสร้างเสียงทราบว่าจะส่งข้อมูลข้อกำหนดเสียงได้ที่ไหน
เปิด /config.js และเพิ่ม data_exporter_api ไปยังการกำหนดค่าดังต่อไปนี้:
DATA_EXPORTER_API: {
BASE_URL: '<DATA_EXPORTER_URL>',
API_KEY: '<DATA_EXPORTER_API_KEY>',
}
โดยที่ Base_url เป็น URL ผู้ส่งออกข้อมูลของคุณและ API_KEY เป็นคีย์ API ของผู้ส่งออกข้อมูลของคุณ
redeploy builder instance ui อินสแตนซ์เพื่อให้ตอนนี้มีการกำหนดค่าใหม่และรู้ว่าจะส่งข้อมูลข้อมูลจำเพาะเสียงได้ที่ไหน ไปยังผู้ส่งออกข้อมูลของคุณ
./deploy.sh ui update
พยายามสร้างงานใหม่! ตอนนี้ตัวสร้างเสียงควรส่งคำขอไปยัง data_exporter_url ของคุณด้วยข้อมูลจำเพาะเสียงของงานที่สร้างขึ้น
VoiceBuildingSpecification เป็นคำจำกัดความ JSON ของข้อกำหนดเสียง ข้อกำหนดนี้ถูกสร้างขึ้นโดยแบ็กเอนด์ Voice Builder เมื่อผู้ใช้ทริกเกอร์คำขอการสร้างเสียงจาก UI สามารถใช้งานได้โดยผู้ส่งออกข้อมูล (ส่งผ่านไปยังผู้ส่งออกข้อมูลผ่าน API) เพื่อแปลงไฟล์และโดยเครื่องมือ TTS สำหรับพารามิเตอร์การฝึกอบรม
{
"id": int,
"voice_name": string,
"created_by": string,
"job_folder": string,
"lexicon_path": object(Path),
"phonology_path": object(Path),
"wavs_path": object(Path),
"wavs_info_path": object(Path),
"sample_rate": int,
"tts_engine": string,
"engine_params": [object(EngineParam)],
}
| ทุ่งนา | คำอธิบาย |
|---|---|
| รหัสประจำตัว | รหัสงานทั่วโลกที่ไม่ซ้ำกัน |
| Voice_name | ชื่อเสียงที่เป็นมิตรกับผู้ใช้ (เช่นเสียงลำโพงหลายตัว) |
| สร้าง _by | ชื่อของผู้ใช้ที่สร้างเสียง |
| Job_folder | เส้นทางไปยังโฟลเดอร์งาน GCS นี่คือที่ข้อมูลทั้งหมดที่เกี่ยวข้องกับงานคือการจัดเก็บ |
| lexicon_path | เส้นทางสู่พจนานุกรม |
| phonology_path | เส้นทางสู่สัทศาสตร์ |
| wavs_path | เส้นทางไปยัง WAVS (ควรเป็นไฟล์ tar) |
| wavs_info_path | พา ธ ไปยังไฟล์ที่มีการแมปของชื่อ WAV และพรอมต์ |
| sample_rate | อัตราตัวอย่างที่ควรสร้างเสียง |
| tts_Engine | ประเภทของเครื่องยนต์ TTS เพื่อฝึกเสียง ค่าสำหรับสิ่งนี้จะเป็น engine_id จาก engine tts engine.json ที่เลือก |
| engine_params | พารามิเตอร์เพิ่มเติมสำหรับเครื่องยนต์ TTS |
EngineParam มีพารามิเตอร์สำหรับเครื่องยนต์แบ็กเอนด์ TTS
{
"key": string,
"value": string
}
| ทุ่งนา | คำอธิบาย |
|---|---|
| สำคัญ | คีย์พารามิเตอร์ |
| ค่า | ค่าสำหรับคีย์พารามิเตอร์ |
Path มีข้อมูลเกี่ยวกับเส้นทางไฟล์
{
"path": string
"file_type": string
}
| ทุ่งนา | คำอธิบาย |
|---|---|
| เส้นทาง | พา ธ ไปยังไฟล์ |
| file_type | รูปแบบของไฟล์ |
ตัวอย่างเช่นหากคุณตั้งค่าผู้ส่งออกข้อมูลของคุณเมื่อคุณสร้างเสียงโดยใช้เอ็นจิ้นเทศกาลที่กำหนดไว้ล่วงหน้าของเราผู้สร้างเสียงจะส่งร่างกายคำขอคล้ายกับด้านล่างไปยังผู้ส่งออกข้อมูลของคุณ จากนั้นผู้ส่งออกข้อมูลของคุณจะต้องประมวลผลข้อมูลล่วงหน้าและวางไว้ในตำแหน่ง job_folder (ซึ่งก็คือ gs://your-voice-builder-jobs/1 ในตัวอย่างนี้) หลังจากวางไฟล์ที่จำเป็นทั้งหมดไว้ในโฟลเดอร์กระบวนการสร้างเสียงจริงจะเริ่มขึ้นโดยอัตโนมัติตามที่คาดไว้
{
"id": 1,
"voice_name": "my_voice",
"createdBy": "[email protected]",
“job_folder”: "gs://your-voice-builder-jobs/1";
"engine_params": [
{
"key": "param_for_festival1",
"value": "50"
},
{
"key": "param_for_festival2",
"value": "30"
}
],
"sample_rate": "22050",
"tts_engine": "festival",
"lexicon_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/lexicon.scm",
"file_type": "SCM"
},
"phonology_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/phonology.json",
"file_type": "JSON_EXTERNAL_PHONOLOGY"
},
"wavs_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/wavs.tar.gz",
"file_type": "TAR"
},
"wavs_info_path": {
"path": "gs://voice-builder-public-data/examples/sinhala/txt.done.data",
"file_type": "LINE_INDEX"
},
}