Khắc phục sự cố
Vấn đề về việc dàn dựng mô hình ngôn ngữ
Hầu hết các vấn đề đều liên quan đến việc dàn dựng mô hình ngôn ngữ, điều này có thể gây ra sự cố trong bản dựng đã đóng gói. Cụ thể, bạn có thể gặp phải các nhật ký sau:
LogRuntimeSpeechRecognizer: Error: Language model loading failed: Failed to load the language model asset '/RuntimeSpeechRecognizer/LanguageModels/LanguageModel.LanguageModel'
Để khắc phục điều này, hãy vào Project Settings, sau đó điều hướng đến phần Project -> Packaging. Cuộn xuống và mở rộng mục Advanced, và đảm bảo rằng:
DirectoriesToAlwaysCook(được gắn nhãn làAdditional Asset Directories to Cook) có một mục nhập cho/RuntimeSpeechRecognizer/LanguageModelsbên trong. Việc này được plugin tự động thực hiện trong quá trình editor, nhưng một số người dùng đã báo cáo rằng họ phải làm thủ công, vì vậy hãy chắc chắn kiểm tra. Điều này cần thiết để đảm bảo rằng asset mô hình ngôn ngữ luôn được đưa vào bản build đã đóng gói.

bCookMapsOnlyđược đặt thànhfalse. Nếu nó được đặt thànhtrue, nó sẽ bỏ qua thuộc tính trước đó và có khả năng asset mô hình ngôn ngữ sẽ không được đưa vào đúng cách. Việc này cũng được plugin tự động thực hiện, nhưng để chắc chắn, hãy kiểm tra biến này theo cách thủ công.

Có thể có các thuộc tính khác ảnh hưởng đến hành vi đóng gói của engine, chúng có thể được thêm vào trang này sau khi được điều tra.
Sự cố trên Android và iOS
Trong một số trường hợp trên Android và iOS, các sự cố có thể xảy ra trong thời gian chạy (ví dụ như trong quá trình kiểm thử TestFlight). Điều này là do yêu cầu cấp phát bộ nhớ của thư viện whisper.cpp cơ bản xung đột với các bộ cấp phát mặc định của Unreal Engine trên các nền tảng này. Trên các nền tảng khác, FMalloc mặc định sử dụng bộ cấp phát ANSI, vì vậy vấn đề này chỉ xảy ra trên Android và iOS.
Để giải quyết vấn đề này, bạn cần buộc sử dụng bộ cấp phát ANSI trong tệp Target.cs của dự án:
Đối với Unreal Engine 5.5 trở về trước:
- Dự án của bạn phải sử dụng engine được build từ mã nguồn (không phải binary được biên dịch sẵn)
- Thêm dòng sau vào tệp
Target.cscủa bạn:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Dành cho Unreal Engine 5.6 trở lên:
- Hoạt động với cả bản dựng từ mã nguồn và bản dựng đã biên dịch sẵn
- Thêm hai dòng sau vào tệp
Target.cscủa bạn:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
Điều này buộc Unreal Engine sử dụng bộ cấp phát ANSI trên Android và iOS, khớp với bộ cấp phát được sử dụng bởi whisper.cpp.