Chuyển đến nội dung chính

Bài đăng

Convolution Augmented Transformer (Conformer) trong ASR và TTS

Conformer Chú ý: Mọi người nên tìm hiểu kỹ về Transformer và Multi-head Self Attention trước khi đọc bài này. Câu hỏi cho người đọc: Có cần thiết áp dụng Macron-style và Relative Position Encoding cho Conformer trong các bài toán xử lý tiếng nói hay không? ASR Conformer Trước khi đi vào phần chính, chúng ta sẽ lướt qua xem hướng tiếp cận đang cho hiệu quả cao nhất trong nhận dạng tiếng nói, RNN-Transducer và những biến thể cải tiến của nó. Mô hình chung của một Neural RNN-Transducer được biểu diễn trong hình 1. Hình 1: Neural Transducer [1] Trong đó, Predictor và Encoder có thể được xây dựng bởi nhiều kiến trúc khác nhau như RNNs, LSTM hay Transformer để đưa ra các biểu diễn trung gian của các chuỗi đầu vào. Với Predictor là biểu diễn của chuỗi văn bản (label), và Encoder là biểu diễn của chuỗi audio-frame. Cùng với Predictor và Encoder, RNN-T loss được sử dụng để cực đại hóa tổng xác suất của mọi alignment giữa audio đầu vào và văn bản đầu ra, từ đó giúp cho mô hình học được alignme
Các bài đăng gần đây

Attention Mechanism

Trước khi đi sâu tìm hiểu về Attention ta sẽ xem xét một chút về mô hình S equence to S equence và lý do vì sao attention lại được áp dụng cho mô hình này. Tôi có đọc nhiều bài viết trên mạng và thấy có nhiều người cho rằng Sequence to Sequence model là một trường hợp đặc biệt của Auto-Encoder, hay là một mô hình học sâu, tuy nhiên đây là một nhầm lẫn tai hại về khái niệm. Thực tế việc sử dụng Auto-Encoder chỉ là một trong những giải pháp giải quyết các vấn đề về Sequence to Sequence, tuy nhiên thì đây là giải pháp được dùng phổ biến và hiệu quả nhất hiện nay, do đó trong bài viết này chúng ta ngầm hiểu Sequence to Sequence model cũng chính là Auto-Encoder model. Sequence to Sequence Models Sequence to Sequence models là một lớp các mô hình được đề xuất để giải quyết các lớp bài toán liên quan đến chuỗi như: Dịch máy, nhận dạng tiếng nói, tổng hợp tiếng nói,… Dịch Máy (Machine Translation): Là hệ thống tự động dịch văn bản từ ngôn ngữ nguồn sang ngôn ngữ đích. Hình 1: Ví dụ về dịch máy

Mel Frequency Cepstral Coefficients

Trong bài viết về  Cepstral Analysis  tôi đã trình bày về các phép phân tích tín hiệu tiếng nói như biến đổi Fourier hay biến đổi sang miền cepstral. Và cũng lý giải tại sao việc biến đổi sang miền cepstral lại giúp ích cho việc trích chọn các đặc trưng của tín hiệu tiếng nói. Tuy nhiên, như vậy là chưa đủ. Để có thể thực sự áp dụng vào các bài toán thực tế như nhận dạng tiếng nói hay tổng hợp tiếng nói, ta cần phải tham số hóa các đặc trưng của tín hiệu tiếng nói. Và MFCC (Mel-frequency cepstral coefficients) là phương pháp được sử dụng phổ biến nhất, cũng như cho kết quả tốt nhất trong hầu hết các trường hợp. Bài viết này tôi sẽ đi sâu về việc làm sao để trích chọn ra đặc trưng của tín hiệu tiếng nói dựa trên phương pháp MFCC. Vậy Mel là gì? Tại sao lại chọn Mel? Thông thường khi phân tích một tín hiệu bất kỳ, người ta hay sử dụng biến đổi Fourier để biểu diễn tín hiệu trong miền phổ. Tuy nhiên, tai nghe con người lại không có sự nhạy cảm như nhau với mọi dải tần số, nó cảm nhận

Connectionist Temporal Classification

Nếu bạn muốn xây dựng một chương trình nhận dạng tiếng nói hoặc chữ viết thì mạng nơ ron là một trong những lựa chọn tốt nhất, vì ở thời điểm hiện tại nó cho thấy kết quả tốt hơn hẳn các phương pháp khác. Trong trường hợp này Connectionist Temporal Classification là một lựa chọn hợp lý và giải quyết được hầu hết các vấn đề gặp phải. Bài viết "An Intuitive Explanation of Connectionist Temporal Classification"  của tác giả Harald Scheidl đăng trên Medium đã giải thích cặn kẽ và rất dễ hiểu, do đó tôi sẽ dựa trên phần lớn bài viết này, chỉnh sửa và thêm góc nhìn toán học để các bạn có thể hiểu cặn kẽ vấn đề. Mạng nơ ron học sâu áp dụng cho các bài toán nhận dạng thường bao gồm các Convolution Layers (CNN) để trích ra các chuỗi đặc trưng và các Recurrent Layers (RNN) để luân chuyển những thông tin xuyên suốt chuỗi đầu vào theo thời gian. Các điểm số đầu ra của mỗi ký tự (hoặc âm vị) trong chuỗi đầu vào được biểu diễn đơn giản bởi một ma trận. Với ma trận này có hai điều cần