Nhật ký công việc cho nhiệm vụ "Nghiên cứu tổng hợp phần mềm chất lượng cao giọng nói con người trên trình duyệt"

14 сент. 2026 г., 16:25:51

Web Speech API / SpeechSynthesis như một lớp giải pháp riêng biệt

Trong quá trình tìm kiếm các triển khai hiện có, SpeechSynthesis tích hợp sẵn của trình duyệt đã được kiểm tra.

Ví dụ tối thiểu:

const utterance = new SpeechSynthesisUtterance('Xin chào, đây là tổng hợp giọng nói!');
utterance.lang = 'vi-VN';
const voices = speechSynthesis.getVoices();
utterance.voice = voices.find(v => v.lang === 'vi-VN');
speechSynthesis.speak(utterance);

Mã này cho thấy một thực tế quan trọng: trình duyệt hiện đại đã có khả năng tái tạo giọng nói con người khá bình thường từ văn bản mà không cần triển khai DSP của riêng chúng ta.

Nhưng về mặt kiến trúc, đây là một lớp hệ thống hoàn toàn khác và nó không phù hợp với nhiệm vụ chính của chúng ta.

API thực sự làm gì

SpeechSynthesisUtterance nhận văn bản và các cài đặt như ngôn ngữ/giọng đọc, sau đó truyền chúng đến công cụ giọng nói tích hợp sẵn của trình duyệt/hệ điều hành.

Sơ đồ quy ước:

text
→ SpeechSynthesisUtterance
→ language / voice selection
→ hidden TTS engine
→ audio

Kết quả có sẵn cho người dùng, nhưng chương trình tạo âm thanh bên trong thì không.

Hạn chế nghiêm trọng 1. Không có quyền điều khiển trực tiếp bản thân âm thanh

API chấp nhận văn bản, chứ không phải quỹ đạo phát âm hoặc âm học.

Ví dụ:

mama

thường được phát âm bình thường.

Nhưng nỗ lực viết:

mmmmmmaaamama

không có nghĩa đối với công cụ là:

giữ /m/
→ chuyển đổi mượt mà sang /a/
→ tiếp tục âm tiết

Công cụ diễn giải chuỗi là văn bản và có thể bắt đầu đọc nó giống như một chuỗi tên chữ cái hoặc âm tiết:

em-em-em-em... a... ma-ma...

Tương tự:

shhhhhhhh

có thể biến thành thứ gì đó như:

sha-sha-sha-sha...

Nghĩa là thông qua API này, bạn không thể thiết lập một cách đáng tin cậy:

  • thời lượng của một phụ âm cụ thể;
  • việc giữ một âm vị;
  • sự chuyển đổi mượt mà giữa các âm thanh;
  • hình dạng của quá trình chuyển đổi phát âm;
  • một quỹ đạo thời gian riêng biệt cho tiếng ồn, tạo giọng (voicing), các vóc dáng (formant) và các tham số khác.

Do đó, API hầu như không phù hợp cho các thí nghiệm kiểu:

M ─────────→ A

nơi chính sự chuyển đổi đó là đối tượng nghiên cứu.

Hạn chế nghiêm trọng 2. Ca hát và cấu trúc thời gian tùy ý

Vì đầu vào là văn bản chứ không phải kịch bản âm thanh, bạn không thể tự do xác định:

  • kéo dài các âm thanh riêng lẻ;
  • thời lượng âm tiết tùy ý;
  • quỹ đạo giai điệu của từng âm thanh;
  • các chuyển đổi thanh nhạc;
  • nhịp điệu phi tiêu chuẩn;
  • việc "hát" bình thường thông qua việc điều khiển âm vị trực tiếp.

Thay đổi rate hoặc pitch tổng quát không giải quyết được vấn đề này: nó thay đổi hành vi của toàn bộ phát ngôn, chứ không cung cấp quyền kiểm soát các sự kiện âm thanh bên trong.

Hạn chế nghiêm trọng 3. Gắn kết ngôn ngữ

SpeechSynthesisUtterance dựa vào lang và một voice cụ thể.

Điều này có nghĩa là công cụ mong đợi văn bản nằm trong khuôn khổ của một hệ thống ngôn ngữ nhất định.

Các vấn đề phát sinh bao gồm:

  • trộn nhiều ngôn ngữ trong một cụm từ duy nhất;
  • các âm thanh xuyên ngôn ngữ tùy ý;
  • từ nhân tạo;
  • chuỗi ký tự phi tiêu chuẩn;
  • các âm thanh hoàn toàn không phải là từ của ngôn ngữ đó.

Ngay cả khi công cụ cố gắng phát âm một cái gì đó, nó vẫn làm thông qua các quy tắc diễn giải văn bản của riêng mình, chứ không phải như một trình tạo vạn năng cho âm thanh tùy ý.

Hạn chế nghiêm trọng 4. Giới hạn bởi mô hình ngôn ngữ phát âm

Chính xác hơn là không chỉ nói về "từ điển" theo nghĩa đen, mà là về một giới hạn rộng hơn:

công cụ biết cách phát âm những gì nó có thể diễn giải trong khuôn khổ mô hình ngôn ngữ phát âm của chính nó.

Nghĩa là, nó có thể cố gắng đọc một chuỗi không xác định, nhưng đó vẫn sẽ là sự diễn giải dưới dạng văn bản chứ không phải là bản tái tạo trực tiếp của một đối tượng âm học đã cho.

Đối với nhiệm vụ của chúng ta, điều này có tầm quan trọng cơ bản.

Chúng ta cần một cơ chế ở cấp độ:

sound scenario
→ exact parameter trajectories
→ sound

trong khi ở đây sử dụng:

text
→ hidden linguistic interpretation
→ hidden TTS model
→ sound

Hạn chế nghiêm trọng 5. Hộp đen (Black box)

Ngay cả khi công cụ phát âm một từ với chất lượng rất cao, nó cũng không xuất ra mô tả cấu trúc về việc chính xác thì âm thanh được xây dựng như thế nào.

Không có sẵn biểu diễn kiểu:

initial state
+ timeline
+ source parameters
+ noise parameters
+ resonances
+ transitions

Do đó, SpeechSynthesis không giúp giải quyết nhiệm vụ nghiên cứu cốt lõi:

có được một mô tả nhỏ gọn có thể điều khiển được về âm thanh và có thể chuyển đổi qua lại giữa âm thanh và mô tả đó.

Nó chỉ thể hiện khả năng của hệ thống trong việc tái tạo giọng nói hay từ văn bản.

Tại sao việc ghi lại điều này vẫn hữu ích

Bất chấp sự không phù hợp về kiến trúc đối với nhiệm vụ của chúng ta, SpeechSynthesis vẫn hữu ích khi được xem xét như một tùy chọn có sẵn riêng biệt cho các dự án khác.

Nếu nhiệm vụ chỉ đơn giản là:

text → normal speech

thì API trình duyệt có thể hoàn toàn đáp ứng mà không cần trình tổng hợp của riêng mình.

Nó đặc biệt hữu ích khi:

  • không bắt buộc phải điều khiển các âm vị riêng lẻ;
  • không cần âm thanh phi tiêu chuẩn;
  • không cần ca hát;
  • không cần giải mã hoặc quyền truy cập vào biểu diễn bên trong;
  • TTS thông thường bằng ngôn ngữ được hỗ trợ là đủ.

Tổng kết cho dự án của chúng ta

SpeechSynthesis cho thấy giọng nói chất lượng cao trong trình duyệt dưới dạng kết quả cuối cùng đã có sẵn ngay từ bây giờ.

Nhưng nó không phù hợp với chúng ta về mặt kiến trúc bởi vì:

  1. đầu vào là văn bản, không phải kịch bản âm thanh;
  2. không có khả năng kiểm soát chính xác cấu trúc thời gian bên trong của âm thanh;
  3. không có khả năng kiểm soát thích hợp thời lượng của các âm vị riêng lẻ;
  4. kém phù hợp cho việc ca hát và các quỹ đạo thanh nhạc tùy ý;
  5. phụ thuộc vào ngôn ngữ và công cụ giọng nói cụ thể;
  6. không phải là trình tạo vạn năng cho các âm thanh tùy ý;
  7. không làm lộ biểu diễn bên trong;
  8. không giải quyết bài toán ngược sound → scenario.

Do đó, đối với nhiệm vụ nghiên cứu của chúng ta, đây không phải là đối thủ cạnh tranh của VoiceScenario, mà là một công cụ TTS có sẵn riêng biệt cho một lớp tác vụ hẹp hơn rất nhiều.

13.09.2026

Tìm kiếm và nghiên cứu các dự án trên trình duyệt và các phương pháp DSP có thể tái tạo ít nhất một vài âm tiết hoặc âm thanh giọng nói của con người với chất lượng cao theo cách lập trình, không dùng TTS tạo sinh và không gắn kết phần nhân với chữ cái/âm tiết.