โมเดลและแพลตฟอร์ม AI

HierSpeech++: การอนุมานเชิงแปรผันแบบลำดับชั้นสำหรับการสังเคราะห์เสียงพูดแบบ zero-shot

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

การปรับปรุงและความก้าวหน้าในความสามารถของโมเดลภาษาขนาดใหญ่ ได้เล่นบทบาทสำคัญในการพัฒนาฐานการทำงานของ LLM สำหรับการสร้างเสียงและงานสังเคราะห์เสียงพูด โดยเฉพาะอย่างยิ่งในสถานการณ์ zero-shot โมเดลสังเคราะห์เสียงพูดแบบดั้งเดิมได้เห็นการปรับปรุงอย่างมากจากการรวมคุณสมบัติเพิ่มเติม เช่น ตัวเข้ารหัสเสียงแบบนิวรัลสำหรับหน่วยเสียงและหน่วยพูด แม้ว่าโมเดลสังเคราะห์เสียงพูดเหล่านี้จะให้ผลลัพธ์ที่น่าพอใจ แต่ก็ยังมีโอกาสสำหรับการปรับปรุง เนื่องจากโมเดลเสียงพูดที่ใช้ LLM ในปัจจุบันมีข้อจำกัดทั้งสามด้านต่อไปนี้

  1. มีแนวโน้มที่จะสร้างเสียงพูดอัตโนมัติที่ส่งผลให้ขาดความแข็งแกร่งและความเร็วในการอนุมานที่ช้า ทำให้เกิดการผิดพลาด การข้ามหรือการทำซ้ำ
  2. มีแนวโน้มที่จะพึ่งพาหน่วยเสียงหรือตัวเข้ารหัสเสียงแบบนิวรัลพูดที่ถูกฝึกฝนมาแล้ว
  3. มักต้องการปริมาณข้อมูลการฝึกที่มาก

เพื่อแก้ไขปัญหาที่กล่าวมาข้างต้น และเพิ่มความสามารถของโมเดลเสียงพูดและโมเดลสังเคราะห์เสียงที่ใช้ LLM นักพัฒนาจึงได้สร้าง HierSpeech++ ขึ้นมา ซึ่งเป็นโมเดลสังเคราะห์เสียงพูดแบบ zero-shot ที่มีประสิทธิภาพและรวดเร็ว HierSpeech++ สร้างขึ้นจากความเข้าใจของโมเดลสังเคราะห์เสียงพูดแบบลำดับชั้น ซึ่งไม่เพียงแต่เพิ่มความแข็งแกร่งของเสียงพูดเทียม แต่ยังเพิ่มความสามารถในการแสดงออกและความเป็นธรรมชาติของเสียงพูดที่สร้างขึ้น โดยเฉพาะอย่างยิ่งในสถานการณ์ zero-shot

ในบทความนี้ เราจะพูดถึง HierSpeech++ ในรายละเอียด และมองหาสถาปัตยกรรมของโมเดล การทำงาน และผลลัพธ์เมื่อเปรียบเทียบกับโมเดลการสร้างเสียงและเสียงพูดที่มีอยู่ในปัจจุบัน ดังนั้น มาเริ่มกันเลย

HierSpeech++ : การอนุมานความแปรผันแบบลำดับชั้นสำหรับการสังเคราะห์เสียงพูดแบบ Zero-shot

HierSpeech++ เป็นโมเดลสังเคราะห์เสียงพูดแบบ zero-shot ที่รวดเร็ว มีประสิทธิภาพ และใช้กระบวนการสังเคราะห์เสียงพูดแบบลำดับชั้น โดยการนำกระบวนการสังเคราะห์เสียงพูดแบบต้นทางถึงปลายทางมาใช้ HierSpeech++ สามารถเพิ่มศักยภาพของการสร้างเสียงคลื่นให้สูงสุด เพื่อเชื่อมช่องว่างระหว่างตัวแทนเชิงความหมายและตัวแทนเชิงอะคูสติก โดยการนำตัวแทนเสียงพูดที่เรียนรู้แบบกำกับตนเองมาใช้เป็นการแสดงออกทางเสียงพูดแบบเซมันติก และพยายามแก้ข้อจำกัดของการปรับสไตล์ ระบบสังเคราะห์เสียงแบบต้นทางถึงปลายทางเริ่มต้นในโมเดล VITS ซึ่งใช้ variational autoencoder (VAE) ร่วมกับการฝึกแบบปฏิปักษ์และ normalizing flow ระบบ VAE ที่ฝึกแบบต้นทางถึงปลายทางสามารถสร้างรูปคลื่นคุณภาพสูง โดยมีคุณภาพที่ผู้ฟังรับรู้ดีกว่าแนวทางสังเคราะห์เสียงอื่นๆ

คุณภาพการกู้คืนเสียงของโมเดลเหล่านี้สามารถเพิ่มได้โดยใช้การเข้ารหัสแบบแปรผันแบบมีเงื่อนไขแบบลำดับชั้น เช่นเดียวกับที่ใช้ใน HierSpeech Framework แม้ว่าโมเดลเหล่านี้จะมีศักยภาพ แต่โมเดลที่ใช้กระบวนการฝึกแบบต้นทางถึงปลายทางมีข้อจำกัดบางประการ โดยเฉพาะอย่างยิ่งในสถานการณ์ zero-shot แม้ว่าสามารถสังเคราะห์เสียงพูดที่มีคุณภาพสูงได้ แต่ความคล้ายคลึงกันของเสียงในงานโคลนนิ่งเสียงแบบ zero-shot ยังมีปัญหาความซับซ้อนในการคำนวณสูง ในอีกด้านหนึ่ง โมเดลสังเคราะห์เสียงที่อิงดิฟฟิวชัน ปรับเข้ากับผู้พูดได้ดี แต่ใช้การสร้างแบบวนซ้ำซึ่งทำให้อนุมานช้าและไวต่อข้อมูลที่มีสัญญาณรบกวน อีกทั้งความไม่ตรงกันระหว่างการฝึกและการอนุมานในกระบวนการสองขั้นระหว่างเมลสเปกโทรแกรมกับเสียงอ้างอิงยังจำกัดคุณภาพเสียง

เพื่อแก้ไขปัญหาที่เกิดขึ้นกับโมเดลก่อนหน้า HierSpeech++ ใช้โมเดลสังเคราะห์เสียงพูดแบบลำดับชั้น โมเดลการปรับปรุงเสียงพูด และส่วนประกอบ text-to-vec และแนะนำโมเดลสังเคราะห์เสียงพูดแบบลำดับชั้นที่ดีขึ้น โดยสร้างบนการเข้ารหัสแบบแปรผันแบบมีเงื่อนไขแบบลำดับชั้น เพื่อเพิ่มคุณภาพเสียงให้เกินกว่าคุณภาพการรับรู้ HierSpeech++ ใช้เสียงสองทางเพื่อเพิ่มความสามารถของการแจกแจงภายหลังเชิงอะคูสติก และเพิ่มการทั่วไปนอกการแจกแจงด้วยตัวกำเนิดแบบปรับตัวลำดับชั้นที่รองรับทั้งการสร้างแบบมีเงื่อนไขและไม่มีเงื่อนไข นอกจากนี้ยังใช้ตัวเข้ารหัสเชิงความหมายหลายเส้นทางตามทฤษฎีแหล่งกำเนิดและตัวกรอง เพื่อแยกองค์ประกอบเสียงและเพิ่มข้อมูลทั้งที่ขึ้นกับและไม่ขึ้นกับผู้พูด VAE เชื่อมและเรียนรู้ตัวแทนต่างๆ แบบลำดับชั้นเพื่อปรับเข้ากับสไตล์เสียงเป้าหมายทีละขั้น ระบบยังใช้เครือข่าย Transformer ของ normalizing flow แบบสองทิศทางเพื่อปรับตัวได้ดีขึ้นและลดช่องว่างระหว่างการฝึกกับการอนุมาน

โดยรวมแล้ว HierSpeech++ เป็นโมเดลสังเคราะห์เสียงพูดแบบลำดับชั้นที่ทำงานขนานได้ทั้งหมด ใหม่ และมีประสิทธิภาพ ซึ่งมีเป้าหมายเพื่อสังเคราะห์เสียงพูดในสถานการณ์ zero-shot และพยายามที่จะทำการมีส่วนร่วมต่อไปนี้

  • การใช้โมเดลสังเคราะห์เสียงพูดแบบลำดับชั้นเพื่อควบคุมและถ่ายโอนรูปแบบเสียงและจังหวะ
  • การเพิ่มความสามารถในการจัดการข้อมูลและความสามารถในการสังเคราะห์เสียงพูดแบบความละเอียดสูงโดยการเพิ่มความถี่ของเสียงคลื่นจาก 16 ถึง 48 kHz
  • การบรรลุความสามารถระดับมนุษย์ในการแปลงเสียงและงานสังเคราะห์เสียงพูดแบบ zero-shot

HierSpeech++ : ส่วนประกอบของโมเดลและสถาปัตยกรรม

ตามที่กล่าวไว้ HierSpeech++ เป็นโมเดลสังเคราะห์เสียงพูดแบบ zero-shot ที่พยายามบรรลุความแม่นยำระดับมนุษย์ในแง่ของความคล้ายคลึงกันของเสียงและความเป็นธรรมชาติของเสียงพูด

โมเดล HierSpeech++ ประกอบด้วยส่วนประกอบต่างๆ เช่น โมเดลสังเคราะห์เสียงพูดแบบลำดับชั้น โมเดลการปรับปรุงเสียงพูด และส่วนประกอบ text-to-vec ซึ่งทำงานร่วมกันเพื่ออำนวยความสะดวกในการฝึกอบรมของแต่ละโมเดลที่สามารถใช้ข้อมูลเสียงพูดความละเอียดต่ำจำนวนมากสำหรับการโคลนเสียงได้อย่างมีประสิทธิภาพ

การแสดงออกเสียงพูด

เนื่องจากช่วงความถี่ของเสียงพูดของมนุษย์อยู่ที่ 4 kHz ดังนั้นสำหรับการสังเคราะห์เสียงพูด HierSpeech++ จึงลดความถี่ของเสียงที่ 16 kHz นอกจากนี้เพื่อสร้างสัญญาณเสียงพูดที่มีคุณภาพสูง ต้องใช้อัตราการสุ่มตัวอย่างอย่างน้อยสองเท่าขององค์ประกอบความถี่เสียงสูงสุด เพื่อเพิ่มคุณภาพที่ผู้ฟังรับรู้ ระบบใช้ SpeechSR เพิ่มอัตราการสุ่มตัวอย่างจาก 16 เป็น 48 kHz โดยใช้ตัวแทนความละเอียดต่ำสำหรับข้อมูลเชิงความหมายและอะคูสติก

สำหรับการแสดงออกทางอะคูสติก โมเดลสังเคราะห์เสียงพูดแบบดั้งเดิมใช้ Mel-spectrogram เป็นคุณลักษณะอะคูสติกที่อยู่ระหว่างการแปลงจากคลื่นเสียงโดยใช้การแปลงฟูริเยร์แบบช่วงเวลาสั้น อย่างไรก็ตาม ควรทราบว่าเนื่องจากคุณลักษณะอะคูสติกเป็นการแสดงออกที่มีรายละเอียดซึ่งประกอบด้วยคุณลักษณะต่างๆ รวมถึงเนื้อหาและคำอ่าน ข้อมูลเสียง และอื่นๆ ทำให้โมเดลมีความยากที่จะอนุมานการแสดงออกเหล่านี้ ซึ่งมักจะนำไปสู่การผิดพลาด การขาดความคล้ายคลึงกัน หรือการทำให้เสียงพูดเรียบเกินไป

ต่อไป เพื่อแยกการแสดงออกทางเซมันติกที่ต่อเนื่องออกจากคลื่นเสียง HierSpeech++ ใช้เฟรมเวิร์ก Wav2Vec ซึ่งไม่เหมือนกับวิธีตัวแทนเสียงพูดที่เรียนรู้แบบกำกับตนเองที่เป็นที่นิยมสำหรับการแสดงออกทางเซมันติก แม้ว่าวิธีการนี้จะเป็นทางเลือกที่ดีสำหรับโมเดลภาษาแบบภาษาเดียวที่มีรายละเอียด แต่ก็ส่งผลต่อความสามารถในการโคลนนิ่งเสียงแบบ zero-shot ของโมเดลในแง่ของความแข็งแกร่งและความสามารถในการแสดงออก โดยเฉพาะอย่างยิ่งในงานสังเคราะห์เสียงพูดแบบหลายภาษา

โมเดลสังเคราะห์เสียงพูดแบบลำดับชั้น

ส่วนประกอบโมเดลสังเคราะห์เสียงพูดแบบลำดับชั้นเป็นหินฐานของ HierSpeech++ เนื่องจากช่วยให้สามารถฝึกอบรมโมดูลได้โดยไม่ต้องใช้ป้ายกำกับ เช่น ข้อความหรือ ID ผู้พูด และพึ่งพาข้อมูลเสียงพูดเพียงอย่างเดียว เพื่อเพิ่มความสามารถอะคูสติก โมเดลสังเคราะห์เสียงพูดที่มีคุณภาพสูงสุดได้แทนที่ Mel-spectrogram ด้วยสเปกโทรแกรมเชิงเส้น แต่แนวทางนี้มีข้อจำกัดตามที่ต้นฉบับอธิบายในด้าน KL divergence ความเป็นคาบของระดับเสียง PESQ การแยกส่วนมีเสียงก้องและไม่มีเสียงก้อง และระยะห่างของเมลสเปกโทรแกรม ตัวสังเคราะห์แบบลำดับชั้นจึงใช้ตัวเข้ารหัสอะคูสติกแบบเสียงคู่เพื่อได้ตัวแทนที่ครบถ้วนกว่า โดยสกัดข้อมูลจากรูปคลื่นดิบด้วยตัวเข้ารหัสรูปคลื่น นำมาต่อกับตัวแทนสเปกโทรแกรมเชิงเส้น แล้วฉายเป็นตัวแทนอะคูสติกแบบเชื่อมต่อ

เพื่อรับมือกับการแสดงออกทางเซมันติกที่ไม่ขึ้นกับผู้พูดและผู้พูดที่เกี่ยวข้อง HierSpeech++ ใช้ตัวแทนเสียงพูดที่เรียนรู้แบบกำกับตนเองหลายเส้นทาง โดยที่การแสดงออกแต่ละรายการจะถูกใช้สำหรับการปรับเปลี่ยนรูปแบบแบบลำดับชั้นพร้อมกับการแสดงออกทางเซมันติกที่แยกออกมาเพื่อรับข้อมูลภาษาจากชั้นกลางของ MMS โมเดลยังใช้ความถี่พื้นฐานเพื่อเพิ่มการแยกเสียงพูด เพื่อให้ปรับเส้นโค้งระดับเสียงได้ด้วยตนเอง และใช้ตัวแทนทางภาษาเป็นเงื่อนไขสร้างรูปคลื่นแบบลำดับชั้นพร้อมเสริมตัวแทนภาษาที่เรียนรู้แบบกำกับตนเอง ระหว่างฝึกจะใช้ตัวแทนจากรูปคลื่นและสเปกโทรแกรมเชิงเส้นเพื่อสร้างรูปคลื่นดิบกลับคืน และใช้การอนุมานเชิงแปรผันลำดับชั้นเชื่อมกับตัวแทนภาษาหลายเส้นทาง นอกจากนี้ยังใช้ตัวกำเนิดแบบปรับตัวลำดับชั้น (HAG) เพื่อแปลงตัวแทนเชิงความหมายเป็นรูปคลื่น โดยส่งตัวแทนสไตล์และอะคูสติกไปยังตัวกำเนิดแหล่งเสียงและรูปคลื่น

Text to Vec

สำหรับการสังเคราะห์เสียงพูดจากข้อความ HierSpeech++ ใช้โมเดล text-to-vec หรือ TTV ซึ่งสร้างความถี่พื้นฐานและการแสดงออกทางเซมันติกจากลำดับข้อความ และใช้การค้นหาการจัดตำแหน่งแบบโมโนโทนิกคู่กับการเข้ารหัสแบบแปรผันเพื่อจัดแนวเสียงพูดและข้อความภายใน จากนั้นแทนสเปกโทรแกรมเชิงเส้นด้วยตัวแทนเชิงเส้นที่เรียนรู้แบบกำกับตนเอง และสร้างตัวแทนเดียวกันกลับคืนเป็นผลลัพธ์ของ TTV

นอกจากนี้ HierSpeech++ ยังทำนายความถี่พื้นฐานด้วยความละเอียดที่มากกว่าสี่เท่าเมื่อเปรียบเทียบกับตัวแทนเสียงพูดที่เรียนรู้แบบกำกับตนเอง และใช้การแสดงออกทางข้อความแบบมีเงื่อนไขเป็นข้อมูลก่อนหน้า เนื่องจากข้อมูลทางเซมันติกของตัวแทนเสียงพูดที่เรียนรู้แบบกำกับตนเอง โมเดลจึงสามารถถ่ายโอนรูปแบบจังหวะจากโมเดล text-to-vec ได้ และให้การแสดงออกทางซ่อนเร้นแก่เครื่องเข้ารหัสโฟนีมเพื่อเพิ่มความสามารถทางภาษาของการแสดงออก

SpeechSR หรือการปรับปรุงเสียงพูดแบบซูเปอร์

HierSpeech++ ฝึกอบรมบนชุดข้อมูลที่มีความละเอียดต่ำกว่าในแง่ของประสิทธิภาพของข้อมูลและความพร้อม และเพิ่มความถี่ของคลื่นเสียงพูดต่ำจาก 16 ถึง 48 kHz โมเดลยังแทนที่การถ่ายโอนคอนโวลูชันแบบกลับด้านด้วยตัวเพิ่มความถี่แบบใกล้เคียงที่สุด ซึ่งเคยทราบกันว่าช่วยบรรเทาอาร์ติแฟคต์ที่เกิดจากการถ่ายโอนคอนโวลูชันแบบกลับด้าน

สถาปัตยกรรม

ตัวเข้ารหัสเนื้อหาของ TTV มี WaveNet แบบไม่จำกัดเฉพาะข้อมูลก่อนหน้า (non-causal) 16 ชั้น ขนาดเคอร์เนล 5 และขนาดแฝง 256 ส่วนตัวถอดรหัสมี 8 ชั้น ขนาดเคอร์เนล 5 และขนาดแฝง 512 ตัวเข้ารหัสข้อความมี Transformer ที่ขึ้นกับท่วงทำนอง 3 เครือข่ายและไม่ขึ้นกับเงื่อนไขอีก 3 เครือข่าย ขนาดเคอร์เนล 9 ขนาดตัวกรอง 1024 ขนาดแฝง 256 และ dropout 0.2 ใช้ CNN เคอร์เนล 5 ภายในบล็อก Transformer เพื่อเข้ารหัสบริบทข้างเคียงและปรับสไตล์ท่วงทำนอง SpeechSR มีบล็อก AMP หนึ่งบล็อก 32 ช่องเริ่มต้นโดยไม่มีชั้นเพิ่มอัตราการสุ่มตัวอย่าง ใช้ nearest-neighbor upsampler เพิ่มอัตราการสุ่มตัวอย่างของตัวแทนแฝง และใช้ MPD เป็นตัวจำแนกด้วยขนาดหน้าต่างต่างกัน 6 แบบ พร้อมตัวจำแนกแถบย่อยอีก 4 ตัว

รูปด้านบนแสดงถึงกระบวนการอนุมานของ HierSpeech++ ซึ่งเริ่มต้นด้วยการแยกการแสดงออกทางเซมันติกจากเสียงที่ความถี่ 16 kHz และความถี่พื้นฐานโดยใช้อัลกอริทึม YAPPT ก่อนที่ความถี่พื้นฐานจะถูกส่งเข้าไปในโมเดลสังเคราะห์เสียงพูดแบบลำดับชั้น จะถูกปรับมาตรฐานโดยใช้ความเบี่ยงเบนมาตรฐานและค่าเฉลี่ยของเสียงพูดต้นฉบับ และความถี่พื้นฐานที่ปรับมาตรฐานแล้วจะถูกถอดมาตรฐานโดยใช้ความเบี่ยงเบนมาตรฐานและค่าเฉลี่ยของเสียงพูดเป้าหมาย สำหรับการแปลงข้อความเป็นเสียง ระบบสกัดตัวแทนข้อความแทนตัวแทนเสียง แล้วใช้ TTV สร้างตัวแทนเชิงความหมายจากคำสั่งท่วงทำนอง

การทดลองและผลลัพธ์

โมเดลใช้ฐานข้อมูล LibriTTS ที่มีอยู่สาธารณะเพื่อฝึกอบรมส่วนประกอบโมเดลสังเคราะห์เสียงพูดแบบลำดับชั้น โดยขั้นตอนแรกคือการฝึกอบรมโมเดลโดยใช้ชุดข้อมูล trainclean ของฐานข้อมูล และใช้ข้อมูลที่เหลือเพื่อเพิ่มการถ่ายโอนสไตล์เสียง และเพื่อเพิ่มความหลากหลายและความทนทาน ระบบขยายชุดข้อมูลเป็น 1 kHz ตามภาพต่อไปนี้

การกู้คืน การสังเคราะห์ใหม่ และการแปลงเสียง

เพื่อประเมินประสิทธิภาพของ HierSpeech++ ในงานกู้คืนและการสังเคราะห์ใหม่ ผู้พัฒนาทำการทดลองโดยใช้เมตริกที่เป็นกลางเจ็ดตัว และผลลัพธ์จะแสดงในตัวเลขต่อไปนี้สำหรับการกู้คืนและการสังเคราะห์ใหม่

สำหรับการแปลงเสียง โมเดลใช้มาตรวัดจากความเห็นของผู้ฟังสองตัว: ความคล้ายคลึงกันของเสียง (sMOS) และคะแนนความเป็นธรรมชาติ (nMOS) พร้อมด้วยเมตริกความเป็นธรรมชาติสามตัวและเมตริกความคล้ายคลึงกันสองตัว

ต่อไป โมเดลหลักของ HierSpeech++ คือการเปิดใช้งานการสังเคราะห์เสียงพูดแบบ zero-shot และเพื่อประเมินประสิทธิภาพในสถานการณ์ zero-shot จะเปรียบเทียบกับโมเดลอื่นๆ เช่น AutoVC, VoiceMixer, โมเดลที่อิงดิฟฟิวชัน และอื่นๆ โดยแสดงผลลัพธ์ในตัวเลขต่อไปนี้

ตัวเลขต่อไปนี้แสดงถึงผลลัพธ์ของการแปลงข้อความเป็นเสียงแบบ zero-shot โดยใช้ตัวอย่างอ้างอิงที่มีเสียงรบกวนและมีเสียงรบกวนมาก

ความคิดสุดท้าย

ในบทความนี้ เราได้พูดถึง HierSpeech++ ซึ่งเป็นแนวทางใหม่ในการสังเคราะห์เสียงพูดที่มีประสิทธิภาพและรวดเร็วในสถานการณ์ zero-shot และเพื่อเอาชนะข้อจำกัดที่โมเดลสังเคราะห์เสียงพูดในปัจจุบันเผชิญ รวมถึงการอาศัยข้อมูลการฝึกที่มาก การพึ่งพาหน่วยเสียงหรือตัวเข้ารหัสเสียงแบบนิวรัลพูดที่ถูกฝึกฝนมาแล้ว และการสร้างเสียงพูดอัตโนมัติที่ส่งผลให้ขาดความแข็งแกร่งและความเร็วในการอนุมานที่ช้า

  • การใช้โมเดลสังเคราะห์เสียงพูดแบบลำดับชั้นเพื่อควบคุมและถ่ายโอนรูปแบบเสียงและจังหวะ
  • การเพิ่มความสามารถในการจัดการข้อมูลและความสามารถในการสังเคราะห์เสียงพูดแบบความละเอียดสูงโดยการเพิ่มความถี่ของเสียงคลื่นจาก 16 ถึง 48 kHz
  • การบรรลุความสามารถระดับมนุษย์ในการแปลงเสียงและงานสังเคราะห์เสียงพูดแบบ zero-shot

Kunal Kejriwal เป็นวิศวกรแบ็กเอนด์ที่เชี่ยวชาญด้าน Python, PostgreSQL, Redis และโครงสร้างพื้นฐานคลาวด์บน GCP และ AWS. ด้วยประสบการณ์สามปีในการสร้างและขยายระบบที่ใช้งานจริง เขาเขียนเกี่ยวกับโครงสร้างพื้นฐาน AI, ระบบแบบกระจาย, และสถาปัตยกรรมที่อยู่เบื้องหลังการนำเวิร์กโหลดแมชชีนเลิร์นนิงไปใช้งาน