Bỏ qua tới nội dung
LSLab

Chạy nhận dạng giọng nói ngoại tuyến trên máy nhúng cần gì?

  • Nâng cao
  • Bài viết
  • Từ 18 tuổi
  • 7 phút đọc
Vỏ drone mở để lộ bo xử lý, chip nhớ và micro gắn bên trong khung.

Nhận dạng lời nói ngoại tuyến trên phần cứng nhúng cần mô hình nhận dạng, đường vào âm thanh, đủ tài nguyên tính toán và bộ nhớ, cùng cách đo chất lượng bản chép và độ trễ. Ví dụ Vosk đưa mẫu microphone hoặc tệp WAV qua bộ nhận dạng cục bộ để tạo chữ tạm thời rồi chữ cuối; ứng dụng vẫn phải xác thực văn bản trước khi coi đó là lệnh.

Mục lục
Nhận dạng ngoại tuyến giữ bước nhận dạng trên thiết bị; bộ từ lệnh và tài nguyên phần cứng vẫn có giới hạn.
  • Micro tại thiết bị
  • Chip nhận dạng ngoại tuyến
  • Không cần đám mây cho bước này

Bạn sẽ học được gì

  • Nhận diện các phần mô hình, âm thanh và phần mềm mà nhận dạng ngoại tuyến cần.
  • Theo dõi luồng WAV qua giao diện bộ nhận dạng Vosk.
  • Đánh giá tài nguyên, chất lượng nhận dạng và cách xử lý lỗi trước khi tích hợp.

Cần biết trước

Bạn chỉ cần biết bộ nhận dạng chuyển mẫu âm thanh thành từ; không cần hiểu điều khiển drone.

Phần mềm nào chạy trên thiết bị nhúng?

Bộ nhận dạng ngoại tuyến suy luận ngay trên máy: bo tải mô hình, đọc mẫu từ microphone, chuyển chúng sang định dạng mô hình cần rồi trả về văn bản. Vosk mô tả mình là bộ công cụ nhận dạng lời nói ngoại tuyến có giao diện cho nhiều ngôn ngữ lập trình, và có thể mở rộng từ thiết bị nhỏ như Raspberry Pi đến hệ thống lớn hơn. Đây là khả năng phần mềm, không chứng minh mọi mô hình đều vừa với mọi bo.

Một pipeline đầy đủ gồm các phần riêng: driver thu âm cấp mẫu; vòng lặp chia chúng thành bộ đệm; bộ nhận dạng đối chiếu chuỗi với tài nguyên âm học và ngôn ngữ; bộ giải mã phát giả thuyết tạm thời rồi bản chép cuối; ứng dụng phân tích kết quả và xác thực lệnh. “Ngoại tuyến” nghĩa là đường nhận dạng không cần dịch vụ nhận dạng từ xa. Việc phân phối mô hình, cài phần mềm và cập nhật vẫn có thể cần mạng trước khi triển khai.

Ví dụ cần âm thanh và mô hình nào?

Ví dụ Python của Vosk mở tệp WAV và kiểm tra âm thanh là đơn kênh, PCM không nén với độ rộng mẫu hai byte. Nó đọc từng khung rồi đưa bộ đệm vào AcceptWaveform; bộ nhận dạng trả kết quả tạm thời khi đang tích lũy câu, sau đó trả kết quả cuối khi đầu vào kết thúc. Bản dùng microphone phải cấp mẫu tương thích và tần số lấy mẫu phù hợp với bộ nhận dạng; sai định dạng hoặc tần số làm đầu vào không hợp lệ hoặc giảm khả năng diễn giải.

Mô hình là một tài nguyên riêng. Tải mô hình khớp ngôn ngữ đã chọn và giữ thư mục của nó để khởi tạo Model. Kho mã mô tả các mô hình cỡ khoảng năm mươi megabyte, nhưng kích thước gói tải và bộ nhớ khi chạy không phải cùng một đại lượng: mô hình đã nạp, trạng thái bộ giải mã, bộ đệm âm thanh và ứng dụng cùng dùng tài nguyên. Hãy đo bộ nhớ thường trú đỉnh và mức dùng bộ xử lý trong câu dài nhất dự kiến trên chính bo đích, thay vì cho rằng dung lượng tải xuống chính là RAM cần thiết.

Trong ví dụ đọc tệp của Vosk, chương trình nhận đường dẫn WAV, tạo Model, tạo KaldiRecognizer với tần số lấy mẫu của WAV, rồi lần lượt đưa các bộ đệm vào để nhận kết quả JSON. Khi chuyển sang microphone, ứng dụng cần thay bộ đọc tệp bằng phần thu âm tương thích.

Làm sao biết bo xử lý đủ nhanh?

Chạy tập bản ghi đại diện trên đúng bo và đo thời gian từ mẫu âm cuối đến kết quả cuối, cùng độ trễ streaming giữa các bộ đệm. Ghi mã mô hình, định dạng âm thanh, ngôn ngữ, tiếng ồn, bộ nhớ đỉnh và tải CPU. So văn bản với bản tham chiếu do người ghi bằng word error rate: số từ bị thay, mất hoặc chèn chia cho tổng từ trong bản tham chiếu. Với lệnh, cũng đếm intent và trường bắt buộc được phân tích đúng hay không; văn bản sai một ít vẫn có thể làm đổi từ quan trọng với lệnh.

Chạy ngoại tuyến đổi sự phụ thuộc mạng và truyền âm thanh lấy tính toán cục bộ, lưu trữ và trách nhiệm cập nhật. Mô hình nhỏ hơn có thể vừa bo nhưng nhận ít từ hơn hoặc kém với giọng vùng miền và tiếng ồn; mô hình lớn hơn có thể bao phủ tốt hơn nhưng vượt bộ nhớ hoặc phản hồi chậm. Nếu bo không xử lý kịp, hàng đợi đầu vào dài lên, chữ tạm thời đến muộn hoặc khung âm thanh bị bỏ. Chỉ giảm việc sau khi đo: chọn mô hình vừa tài nguyên, giữ định dạng âm thanh tương thích, giới hạn bộ lệnh ở tầng ứng dụng mà không che giấu từ không nhận ra.

Ví dụ: từ bản ghi đến văn bản đã kiểm tra

Quy trình bàn thử minh họa, không phải kết quả hiệu năng đã đo.

Người phát triển chọn mô hình ngoại tuyến cho ngôn ngữ dự kiến, nạp từ ổ cục bộ và mở bản ghi PCM đơn kênh đã biết. Bộ đọc đưa lần lượt từng khung vào; bộ nhận dạng phát chữ tạm thời rồi kết quả cuối. Ứng dụng hiện bản chép và so với lời tham chiếu. Nếu chương trình báo định dạng không hỗ trợ, sửa định dạng thu hoặc xuất trước khi chỉnh mô hình. Nếu chữ chỉ về sau khi đọc hết tệp và chậm hơn thời gian thực, đo tải bo và kích thước mô hình. Nếu bản chép bỏ mất từ quan trọng, ghi đó là lỗi chất lượng và không chuyển đề xuất sang bước xác thực lệnh.

Hiểu lầm thường gặp

Phân loại âm thanh cục bộ là nhận dạng lời nói. Bộ phân loại gán âm thanh vào nhóm; ASR trả về chuỗi từ. Đầu ra của chúng khác nhau nên không thể thay cho nhau.

Câu hỏi thường gặp

“Ngoại tuyến” có nghĩa thiết bị không bao giờ cần mạng không?

Không. Sau khi mô hình và phần mềm có sẵn, nhận dạng có thể chạy cục bộ; tải xuống, cài đặt và cập nhật vẫn có thể dùng mạng.

Kích thước tệp mô hình có bằng lượng RAM không?

Không. Bộ nhớ chạy còn gồm trạng thái giải mã, bộ đệm và ứng dụng, vì vậy phải đo đỉnh trên bo đích.

Thế nào là điều kiện thành công cho bản mẫu?

Bo nhận đúng định dạng, trả văn bản cuối trong mục tiêu phản hồi của sản phẩm, không vượt tài nguyên và đạt chất lượng lệnh đo được trên bản ghi đại diện.

Tóm tắt

  • Nhận dạng ngoại tuyến cần mô hình cục bộ, âm thanh tương thích, vòng nhận dạng và tầng ứng dụng.
  • Luồng WAV cho thấy bộ đệm đi vào bộ nhận dạng và chữ tạm thời thành bản chép cuối.
  • Đo bộ nhớ, tính toán, độ trễ và lỗi lệnh trên bo đích; xem sai định dạng, quá tải và lời nói lạ là lỗi cần xử lý.

Thuật ngữ trong bài

Tên tiếng Việt, tên tiếng Anh và nghĩa dùng trong bài. Di chuột, chạm hoặc dùng phím Tab tới từ có gạch chân chấm để xem giải thích ngay khi đọc.

nhận dạng lời nói ngoại tuyếnoffline speech recognition
Nhận dạng lời nói trên thiết bị cục bộ mà không gọi dịch vụ nhận dạng từ xa.
thiết bị nhúngembedded device
Máy tính tích hợp trong một sản phẩm, có tài nguyên hữu hạn và nhiệm vụ cụ thể.
mô hình ASRASR model
Tài nguyên học máy mà bộ nhận dạng dùng để đổi âm thanh thành từ.
âm thanh PCMPCM audio
Âm thanh được lưu thành mẫu số chưa nén theo thời gian.

Bài này chưa được đánh dấu là đã xem

Thấy nội dung sai hoặc chưa an toàn?

Báo cho quản trị viên qua email. Thư có sẵn tên bài và đường dẫn.

Báo lỗi bài này
Xem tất cả bài của chủ đề

Nguồn

Các nguồn này viết cho người đọc lớn hơn. Nếu thấy khó, hãy đọc cùng người lớn.