Một vector vectơ trong một mô hình Markov ẩn có nghĩa là gì?


8

Tôi biết rằng Mô hình Markov ẩn (HMM) được sử dụng trong nhận dạng giọng nói và hiểu nó ở một mức độ nào đó. Tuy nhiên, điều tôi không biết là làm thế nào đầu vào (lời nói) được "biến đổi" thành một vectơ mà sau này được sử dụng trong HMM.

Làm thế nào để bạn có được một vector từ một đầu vào âm thanh? Là vector này có thể đọc được bởi một con người?


9
Ai đó có thể giải thích cho OP tại sao anh ta bị hạ cấp? Bằng cách đó, anh ta có thể chỉnh sửa câu hỏi của mình thành một câu hỏi có lẽ phù hợp hơn
Ivo Flipse

2
Theo tôi hiểu, các nhà toán học sử dụng thuật ngữ "vectơ" cho những gì người bình thường sẽ gọi là "một chuỗi số". Họ xem tệp MP3 của bạn như một mũi tên chỉ vào một điểm cụ thể trong "không gian Hilbert", có số lượng kích thước vô hạn ...
endolith

Tôi đoán bạn đang hỏi về MFCC. Nó được đưa ra rõ ràng trong Liên kết Wiki này trên MFCC. vi.wikipedia.org/wiki/Mel-frequency_805stral_cooff
Rajesh Dachiraju

Quay vòng tốt đẹp, yoda! Bài viết gốc có một số thiếu sót, nhưng tôi nghĩ rằng hình thức hiện tại không xứng đáng với những lượt downvote hoặc phiếu bầu gần.
Kevin Vermeer

@rajesh: tại sao bạn không đặt câu trả lời này ... cho đến nay vẫn chưa có câu trả lời hay
Peer Stritzinger

Câu trả lời:


8

Cách nhận dạng giọng nói được thực hiện với HTK (hoặc bất kỳ công cụ nào khác) tương tự như cách nhận dạng giọng nói được thực hiện trong não. Khi bạn nghe thấy một từ, bạn ngay lập tức chia nó thành các điện thoại cấu thành của nó và sau đó so sánh các điện thoại với một "mô hình" tinh thần bên trong của điện thoại . Những "mô hình" này được xây dựng qua nhiều năm nghe lời nói và cho bạn khả năng phân biệt giữa các câu có âm tương tự như "Cách phá hủy một bãi biển đẹp" và "Cách nhận biết lời nói". Nhận dạng giọng nói với HTK hoặc bất kỳ chương trình dựa trên mô hình nào khác hoạt động theo cách tương tự. Ở đây, trong một vài bước, là cách bạn làm điều đó:

  1. Bạn lấy tín hiệu giọng nói đầu vào và chuyển đổi nó thành biểu diễn vectơ đặc trưng.
  2. Lấy một số lượng lớn các câu và thực hiện bước 1 trên mỗi câu.
  3. Sử dụng các vectơ đặc trưng trong bước 2 để xây dựng mô hình thống kê cho từng điện thoại / từ trong câu (có một số lượng điện thoại / từ hạn chế so với số cách nói vô hạn của chúng - vì vậy bạn giảm bớt những ẩn số bằng cách lập mô hình ).
  4. Khi có một từ mới, hãy chia nó thành điện thoại và so sánh với từng kiểu máy đã biết. Chuỗi điện thoại có xác suất cao nhất sẽ thắng!

Tất cả các bước trên là rất quan trọng để hoàn thành thành công bất kỳ nhiệm vụ nhận dạng giọng nói. Bằng cách phân tách âm thanh thành vectơ đặc trưng của nó, bạn đang đưa nó vào không gian mô hình, tạo cho nó một biểu diễn làm cho nó phù hợp hơn với việc tạo ra một mô hình ngoài so với các biểu diễn khác (giả sử biểu diễn biên độ thời gian). Hầu hết các đại diện như vậy nằm trong tần số, hoặc miền tần số thời gian. Một trong những đại diện phổ biến nhất như vậy là MFCC (Hệ số cepstral tần số Mel). Theo một cách nào đó, kỹ thuật này bắt chước phản ứng thính giác của con người với một bộ các bộ lọc. Một tín hiệu đầu vào được phân tách với bộ bộ lọc này có khoảng cách logarit của tần số trung tâm của chúng. Các hệ số MFCC của bất kỳ một câu (nói) nào sau đó được sử dụng để mô hình hóa từng điện thoại mà câu được tạo ra. Ví dụ, xem xét,

Câu: HI. Mô tả ngữ âm: hh aa ey
Khi bạn đưa các hệ số MFCC vào HTK, nó sẽ liên kết các hệ số MFCC của một phần của câu với hh, một phần khác với aa, v.v. Khi điều này được lặp đi lặp lại nhiều lần, các mô hình cho điện thoại bắt đầu hình thành.

HTK sử dụng công cụ HCopyđể chuyển đổi một câu đầu vào thành biểu diễn vectơ đặc trưng của nó. Cũng có nhiều "hương vị" cho MFCC (đại diện E_D_A hoặc E_D_A_Z). Nó sẽ là một ý tưởng tốt để đọc tài liệu cho HCopytrong htkbook.

Các hệ số MFCC được ghi vào một tệp có phần mở rộng .mfcbằng HTK. Không thể đọc tệp đó bằng bất kỳ trình soạn thảo văn bản nào vì (tôi nghĩ) các hệ số được viết dưới dạng nhị phân. Bạn có thể cố gắng đọc các tập tin với Cmặc dù.

HTH.


quan tâm để giải thích bỏ phiếu xuống?
Sriram

2
Tôi đã bỏ phiếu vì nhiều lý do. Nó thiếu độ chính xác. Nó rất không chính xác và đầy đủ một nửa sự thật. Không cần thiết đề cập đến các công cụ và tiện ích và phương pháp để sử dụng chúng, không liên quan đến câu hỏi. Trước hết, bản thân câu hỏi không được sáng tác tốt và câu trả lời của bạn dường như không đề cập đến điều đó. Hơn nữa có một bài viết Wikipedia hay trên MFCC mà tôi đề cập đến nhận xét của tôi về câu hỏi.
Rajesh Dachiraju

@Rajesh: cảm ơn đã phản hồi! Tôi đã cung cấp cho OP một liên kết đến trang MFCC trên wikipedia nếu bạn xem xét kỹ. Nếu bạn nghĩ rằng câu trả lời này không chính xác, thì vui lòng làm nổi bật những điểm không chính xác, để chúng tôi có thể tìm hiểu. Việc bỏ phiếu đơn thuần không dẫn đến những lời chỉ trích mang tính xây dựng nên tôi khuyến khích bạn sử dụng editnút miễn phí cho câu trả lời hoặc tốt hơn là cung cấp cho chúng tôi câu trả lời của riêng bạn. Và vâng, nếu bản thân câu hỏi không chính xác, câu trả lời cũng sẽ thiếu độ chính xác. Điều đó đã được thảo luận trong phần ý kiến.
Sriram

1
@Peer: Không. Các điện thoại được mô hình hóa trong tác vụ nhận dạng giọng nói, không phải âm vị (IMHO).
Sriram

2
À tôi thấy ... sự lựa chọn không may của một thuật ngữ kỹ thuật (rất khó để google ;-) Đã thêm một liên kết đến bài viết trên wikipedia cho điện thoại
Peer Stritzinger

0

Mỗi sóng có thể được phân hủy thành sự bổ sung của nhiều sóng khác. Sử dụng biến đổi Fourier, bạn có thể phân tích sóng thành các thành phần tần số của nó. Biên độ của các thành phần tần số này sau đó có thể được sử dụng như một vectơ. Đây là tài liệu về lớp Nhân sư thực hiện điều này và đây là một lời giải thích trực quan tốt về biến đổi Fourier.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.