OpenArchLabOpen Architecture — From Models to Systems

Huấn luyện tiếng nói

4B · Căn chỉnh: CTC hoặc decoder cross-entropy

Hiểu blank và tổng đường CTC, đồng thời phân biệt loss chuỗi với phân loại khung đã căn sẵn.

LESSON ID ta-alignment GROUP Kiến trúc huấn luyện
Mục lục bài học

1Định nghĩa

Căn chỉnh audio–text là quan hệ giữa các vị trí thời gian trong audio với những ký hiệu chữ được nói, trong khi hai dãy có độ dài khác nhau.

CTC (Connectionist Temporal Classification) thêm nhãn blank, gộp lặp liền nhau rồi bỏ blank để ánh xạ một đường nhãn khung thành transcript. ASR (nhận dạng tiếng nói tự động) có thể học bằng tổng xác suất mọi đường hợp lệ; encoder–decoder CE là lựa chọn khác và không cần blank CTC.

Ví dụ đời thường: một từ được kéo dài qua nhiều nhịp; người ghi chép gom các nhịp liên tiếp thành một chữ. Một khoảng nghỉ giữa hai chữ giống nhau cho biết đó là hai lần xuất hiện, không phải một chữ kéo dài.

2Luồng

Các ô cùng bài có thể là chẩn đoán hoặc lựa chọn thiết kế, không mặc định là các bước nối tiếp.

Sơ đồ kiến trúc huấn luyện · 22 ô (1A → 5D)

Huấn luyện tiếng nói · Ba mục tiêu và ánh xạ với lab

Bắt đầu 1A → 1B, rồi rẽ ba nhánh: codec 2A → 2B → 2C học sóng bằng loss ở 2D; TTS 3A → 3B → 3C → 3D học mã từ chữ và giọng; ASR 1C → 1D → 4A → 4B học chữ từ audio. 2E là chẩn đoán. 4C là vòng cập nhật dùng lại theo nhánh, 4D–4E và 5A–5B là kỹ thuật hoặc lựa chọn học. 5C → 5D nối hợp đồng streaming sang checkpoint và suy luận. Di chuột, Tab hoặc bấm ô để đọc năm phần.

Sơ đồ kiến trúc huấn luyện tiếng nói gồm 22 ô từ 1A đến 5D
4B4 · Nhận dạng và cập nhật
logits + transcript → CTC hoặc decoder CE

4B · Căn chỉnh và loss ASR

Hiểu blank và tổng đường CTC, đồng thời phân biệt loss chuỗi với phân loại khung đã căn sẵn.

Nhận gì
Điểm nhãn audio và transcript có độ dài khác nhau.
Làm gì, vì sao
CTC thêm blank, cộng xác suất mọi đường collapse ra transcript; hoặc decoder CE chấm text token kế. Hai lựa chọn không phải loss bắt buộc cộng chung.
Ra gì
Loss nhận dạng tới 4C và transcript khi suy luận.
Ví dụ, cách đọc ô
A,A,blank,A collapse thành A,A; gộp lặp trước rồi bỏ blank. Lab ASR CE 0.9248→0.0082.
Lưu ý
Lab chỉ CE framewise và ví dụ collapse, không huấn luyện CTC forward–backward.
Sơ đồ luồng (3 bước)
  1. Nhận đầu vào

    Nhận logits cho T khung trên bảng chữ cộng blank và transcript ngắn hơn. Softmax đổi điểm thành xác suất. Xác suất một đường là tích các xác suất nhãn theo khung; xác suất transcript là tổng trên mọi đường collapse ra transcript đó.

  2. Biến đổi để học

    Loss CTC bằng −ln của tổng xác suất đường hợp lệ; dùng quy hoạch động trong miền log để tránh underflow. Hai nhãn giống nhau liên tiếp cần blank xen giữa trong đường CTC. Nếu encoder giảm thời gian quá mạnh, không còn đủ khung cho nhãn và loss có thể vô hạn.

  3. Đọc kết quả

    Huấn luyện CTC không cần timestamp từng chữ. Giải mã greedy lấy nhãn lớn nhất mỗi khung rồi collapse chỉ là xấp xỉ transcript có xác suất lớn nhất. Với encoder–decoder, loss CE chấm text token đúng trên lịch sử chữ đúng và audio; phải kiểm rò nhãn tương lai.

Mã Mermaid
flowchart TD
  step1["Nhận đầu vào"]
  step2["Biến đổi để học"]
  step3["Đọc kết quả"]
  step1 --> step2
  step2 --> step3

3Giải pháp

Đầu vào và kiến thức cần nhớ

Nhận logits cho T khung trên bảng chữ cộng blank và transcript ngắn hơn. Softmax đổi điểm thành xác suất. Xác suất một đường là tích các xác suất nhãn theo khung; xác suất transcript là tổng trên mọi đường collapse ra transcript đó.

Thao tác và lý do

Loss CTC bằng −ln của tổng xác suất đường hợp lệ; dùng quy hoạch động trong miền log để tránh underflow. Hai nhãn giống nhau liên tiếp cần blank xen giữa trong đường CTC. Nếu encoder giảm thời gian quá mạnh, không còn đủ khung cho nhãn và loss có thể vô hạn.

Đầu ra và cách đọc

Huấn luyện CTC không cần timestamp từng chữ. Giải mã greedy lấy nhãn lớn nhất mỗi khung rồi collapse chỉ là xấp xỉ transcript có xác suất lớn nhất. Với encoder–decoder, loss CE chấm text token đúng trên lịch sử chữ đúng và audio; phải kiểm rò nhãn tương lai.

4Profiling

  • Kiểm đúng trước, đo sau

    Kiểm chuỗi rất nhỏ bằng liệt kê mọi đường và so quy hoạch động trước khi chạy dữ liệu dài. Theo dõi số ví dụ không đủ khung, tỷ lệ blank và WER. Blank cao có thể hợp lý vì nhiều khung không tạo chữ mới; không chỉ nhìn blank mà kết luận lỗi.

  • Giới hạn kết luận

    Không gọi CE framewise là CTC loss: nó nhận căn chỉnh sẵn, còn CTC phải cộng qua căn chỉnh ẩn.

Mẹo đo lường: ghim số liệu trên workload thật, ghi cả p50/p95/p99 thay vì chỉ trung bình, và luôn ghi lại điều kiện chạy (batch, cache, đồng thời, phần cứng) trước và sau khi tối ưu. Số đo thiếu điều kiện chạy thì không so sánh được.

5Ví dụ

Đối chiếu ô 4B và lab giai đoạn 6

Lab dùng đường [A,A,blank,A,B,B,blank,C]; gộp lặp rồi bỏ blank cho [A,A,B,C]. Nếu bỏ blank trước rồi mới gộp sẽ làm mất một A. Tự kiểm: mục tiêu AA với hai khung có hợp lệ không? Không trong CTC chuẩn; ít nhất cần A,blank,A. Lab chỉ chạy collapse và CE theo nhãn khung sẵn, không tối ưu tổng đường.

Tự thực hành có hướng dẫn

Mở [bài Lab tổng hợp](/courses/llm-training-audio/train-audio-lab/ta-end-to-end-lab/) rồi tìm khối [6] trong output. Viết lại đầu vào, kết quả và giới hạn của khối đó trước khi thử thay một hằng số. Nếu cơ chế chỉ được giải thích chứ chưa được thực thi, không ghi PASS của lab thành bằng chứng cho cơ chế ấy.

6Thuật ngữ

Căn chỉnh: CTC hoặc decoder cross-entropy
Căn chỉnh audio–text là quan hệ giữa các vị trí thời gian trong audio với những ký hiệu chữ được nói, trong khi hai dãy có độ dài khác nhau.
Glossary (1)
Đối chiếu sơ đồ
Ô 4B; giai đoạn 6 của lab. Không gọi CE framewise là CTC loss: nó nhận căn chỉnh sẵn, còn CTC phải cộng qua căn chỉnh ẩn.

7Bài liên quan

8Nguồn