Chuyển tới nội dung chính

Giảm thiểu tình trạng đóng băng

Hướng dẫn này giải quyết hai nguồn gây đóng băng phổ biến trong plugin RuntimeSpeechRecognizer và cung cấp các giải pháp thực tế để giảm thiểu tác động đến hiệu suất.

Sóng âm có thể thu

Khi bắt đầu sóng âm có thể thu bằng hàm StartCapture, bạn có thể gặp phải độ trễ ngắn, điều này phụ thuộc vào engine và hiện tại không thể tránh khỏi nếu không sửa đổi mã engine cụ thể. Thời gian của độ trễ này thay đổi tùy theo nền tảng, vì nó liên quan đến việc thực thi mã dành riêng cho nền tảng để lấy dữ liệu âm thanh từ thiết bị đầu vào (microphone). Độ trễ này đã được quan sát thấy trên các nền tảng như Windows, Mac, Android và iOS và có thể liên quan đến các nền tảng khác.

Để giảm thiểu tình trạng giật lag này, hãy cân nhắc bắt đầu quá trình thu bằng cách gọi hàm StartCapture vào thời điểm mà tác động của nó là không đáng kể, chẳng hạn như trong màn hình tải. Ngay sau khi gọi StartCapture, hãy sử dụng hàm ToggleMute với tham số Mute được đặt thành True. Và khi bạn sẵn sàng bắt đầu thu dữ liệu âm thanh, hãy kích hoạt sóng âm có thể thu bằng cách gọi ToggleMute với tham số Mute được đặt thành False. Bạn có thể xem thêm thông tin liên quan tại đây.

Bắt đầu nhận dạng giọng nói

Khi bạn kích hoạt nhận dạng giọng nói bằng cách gọi StartSpeechRecognition, có thể xảy ra hiện tượng đóng băng nhẹ do engine tải tài nguyên mô hình ngôn ngữ. Mặc dù quá trình này được thiết kế để chạy bất đồng bộ và thực thi trên một luồng riêng, engine vẫn thực hiện nội bộ một số thao tác nhất định trên luồng trò chơi, dẫn đến hiện tượng giật lag nhẹ đáng chú ý, đặc biệt là với các tài nguyên lớn như mô hình ngôn ngữ.

Để loại bỏ tình trạng đóng băng này, hãy tuân thủ nguyên tắc tương tự như đã mô tả ở trên: gọi StartSpeechRecognition vào thời điểm mà tác động của độ trễ là hợp lý hoặc không đáng kể, chẳng hạn như trong màn hình tải.