Lưu ý đầu tiên: Hầu hết các hệ thống chuyển văn bản thành giọng nói hiện đại, như hệ thống từ AT & T mà bạn đã liên kết đến, sử dụng tổng hợp giọng nói kết hợp . Kỹ thuật này sử dụng một cơ sở dữ liệu lớn các bản ghi âm giọng nói của một người trong bộ sưu tập dài các câu - được chọn sao cho số lượng kết hợp âm vị lớn nhất có mặt. Tổng hợp một câu có thể được thực hiện chỉ bằng cách xâu chuỗi các phân đoạn từ kho văn bản này - bit thách thức đang làm cho chuỗi kết hợp liền mạch và biểu cảm.
Có hai rào cản lớn nếu bạn muốn sử dụng kỹ thuật này để khiến Tổng thống Obama nói những lời đáng xấu hổ:
- Bạn cần có quyền truy cập vào một tập hợp lớn các câu của giọng nói đích, tốt nhất là được ghi lại với các điều kiện ghi âm thống nhất và chất lượng tốt. AT & T có ngân sách để thu âm hàng chục giờ của cùng một người nói trong cùng một phòng thu, nhưng nếu bạn muốn giả giọng của ai đó chỉ sau 5 phút ghi âm thì sẽ rất khó.
- Có một số lượng đáng kể sự căn chỉnh thủ công và tiền xử lý trước khi nguyên liệu thô được ghi ở đúng "định dạng" được khai thác bởi một hệ thống tổng hợp giọng nói ghép nối.
Trực giác của bạn rằng đây là một giải pháp khả thi là hợp lệ - miễn là bạn có ngân sách để giải quyết hai vấn đề này.
May mắn thay, có những kỹ thuật khác có thể hoạt động với ít sự giám sát hơn và ít dữ liệu hơn. Lĩnh vực tổng hợp giọng nói quan tâm đến việc "giả mạo" hoặc "bắt chước" một giọng nói từ bản ghi được gọi là chuyển đổi giọng nói . Bạn có bản ghi A1 của người nói mục tiêu A nói câu 1 và bản ghi B2 của người nói nguồn B nói câu 2, bạn nhắm đến việc tạo bản ghi A2 của người nói A nói câu 2, có thể có quyền truy cập vào bản ghi B1 của người nói B đang sao chép với giọng nói của anh ấy / cô ấy giống như người nói mục tiêu.
Các phác thảo của một hệ thống chuyển đổi giọng nói là như sau:
- Các tính năng âm thanh được trích xuất từ bản ghi A1 và chúng được nhóm lại thành các lớp âm thanh. Ở giai đoạn này, có một chút giống như có túi sẽ là tất cả "a" của loa A, tất cả "o" của loa A, v.v ... Lưu ý rằng đây là một thao tác đơn giản và thô sơ hơn nhiều so với nhận dạng giọng nói thật - chúng tôi không quan tâm đến nhận biết các từ được tạo thành chính xác - và chúng tôi thậm chí không biết túi nào chứa "o" và túi nào chứa "a" - chúng tôi chỉ biết rằng chúng tôi có nhiều phiên bản của cùng một âm thanh trong mỗi túi.
- Quá trình tương tự được áp dụng trên B2.
- Các lớp âm thanh từ A1 và B2 được căn chỉnh. Để tiếp tục với sự tương tự của túi, điều này tương đương với việc ghép các túi từ bước 1 và 2, sao cho tất cả âm thanh chúng ta có trong túi này từ loa A phải tương ứng với âm thanh chúng ta có trong túi đó từ loa B. Kết hợp này là dễ dàng hơn nhiều để làm nếu B1 được sử dụng ở bước 2.
- Một chức năng ánh xạ được ước tính cho mỗi cặp túi. Vì chúng ta biết rằng túi này chứa âm thanh từ loa A và túi đó có cùng âm thanh nhưng được nói bởi loa B - chúng ta có thể tìm thấy một thao tác (ví dụ: nhân ma trận trên các vectơ đặc trưng) làm cho chúng tương ứng. Nói cách khác, bây giờ chúng ta biết cách làm cho âm "o" của loa 2 giống như "o" của loa 1.
- Ở giai đoạn này, chúng tôi có tất cả các thẻ trong tay để thực hiện chuyển đổi giọng nói. Từ mỗi lát của bản ghi B2, chúng tôi sử dụng kết quả của bước 2. để tìm ra loại âm thanh tương ứng. Sau đó, chúng tôi sử dụng chức năng ánh xạ ước tính ở bước 4 để biến đổi lát cắt.
Tôi nhấn mạnh vào thực tế rằng điều này hoạt động ở mức độ thấp hơn nhiều so với việc thực hiện nhận dạng giọng nói trên B2, và sau đó thực hiện TTS bằng giọng nói của A1 như một kho văn bản.
Các kỹ thuật thống kê khác nhau được sử dụng cho bước 1 và 2 - GMM hoặc VQ là những kỹ thuật phổ biến nhất. Các thuật toán căn chỉnh khác nhau được sử dụng cho phần 2 - đây là phần khó nhất và rõ ràng dễ dàng hơn để căn chỉnh A1 so với B1, so với A1 so với B2. Trong trường hợp đơn giản hơn, các phương thức như Dynamic Time Warping có thể được sử dụng để thực hiện căn chỉnh. Đối với bước 4, biến đổi phổ biến nhất là biến đổi tuyến tính (nhân ma trận) trên các vectơ đặc trưng. Các phép biến đổi phức tạp hơn tạo ra các mô phỏng thực tế hơn nhưng vấn đề hồi quy để tìm ánh xạ tối ưu phức tạp hơn để giải quyết. Cuối cùng, như bước 5, chất lượng tái tổng hợp bị giới hạn bởi các tính năng được sử dụng. LPC thường dễ xử lý hơn với phương pháp biến đổi đơn giản (lấy khung tín hiệu -> ước lượng phổ dư và LPC -> nếu cần thay đổi độ cao cần thiết -> áp dụng phổ LPC đã sửa đổi cho phần dư được sửa đổi). Sử dụng một đại diện của lời nói có thể được đảo ngược trở lại miền thời gian và cung cấp sự phân tách tốt giữa giai điệu và âm vị là chìa khóa ở đây! Cuối cùng, miễn là bạn có quyền truy cập vào các bản ghi được căn chỉnh của người nói A và B nói cùng một câu, có các mô hình thống kê giải quyết đồng thời các bước 1, 2, 3 và 4 trong một quy trình ước tính mô hình duy nhất.
Tôi có thể quay lại với một thư mục sau, nhưng một nơi rất tốt để bắt đầu cảm nhận vấn đề và khuôn khổ chung được sử dụng để giải quyết nó là "Hệ thống chuyển đổi giọng nói dựa trên phân loại xác suất và điều hòa" của Stylianou, Moulines và Cappé cộng với mô hình tiếng ồn ".
Theo hiểu biết của tôi, không có phần mềm nào thực hiện chuyển đổi giọng nói - chỉ có các thuộc tính sửa đổi phần mềm của các thông số độ dài của giọng nói và giọng nói (ví dụ: biến áp IRCAM TRAX) - mà bạn phải làm rối với hy vọng tạo ra ghi âm gần với giọng nói đích hơn.