Solução de Problemas
Problemas de Preparação do Modelo de Linguagem
A maioria dos problemas está relacionada à preparação do modelo de linguagem, que pode causar problemas na versão empacotada. Especificamente, você pode encontrar os seguintes logs:
LogRuntimeSpeechRecognizer: Error: Language model loading failed: Failed to load the language model asset '/RuntimeSpeechRecognizer/LanguageModels/LanguageModel.LanguageModel'
Para corrigir isso, vá para Configurações do Projeto, depois navegue até a seção Projeto -> Empacotamento. Role para baixo e revele a categoria Avançado, e certifique-se de que:
DirectoriesToAlwaysCook(rotulado comoDiretórios de Ativos Adicionais para Cozinhar) tenha uma entrada para/RuntimeSpeechRecognizer/LanguageModelsdentro. Isso é feito automaticamente pelo plugin durante o tempo de editor, mas alguns usuários relataram ter que fazê-lo manualmente, então por favor, certifique-se de verificar. Isso é necessário para garantir que o ativo do modelo de linguagem seja sempre preparado na build empacotada.

bCookMapsOnlyestá definido comofalse. Se estiver definido comotrue, ele ignorará a propriedade anterior, e há uma possibilidade de que o ativo do modelo de linguagem não seja preparado adequadamente. Isso também é feito automaticamente pelo plugin, mas apenas para ter certeza, por favor, verifique esta variável manualmente também.

Pode haver outras propriedades que podem afetar o comportamento de empacotamento do motor, que podem ser adicionadas a esta página posteriormente, conforme forem investigadas.
Travamentos no Android e iOS
Em alguns casos no Android e iOS, travamentos podem ocorrer durante o tempo de execução (como durante os testes do TestFlight). Isso é causado pelos requisitos de alocação de memória da biblioteca subjacente whisper.cpp conflitando com os alocadores padrão do Unreal Engine nessas plataformas. Em outras plataformas, o FMalloc usa como padrão o alocador ANSI, então este problema é específico para Android e iOS.
Para resolver isso, você precisa forçar o alocador ANSI no arquivo Target.cs do seu projeto:
Para Unreal Engine 5.5 e anteriores:
- Seu projeto deve usar um motor construído a partir do código-fonte (não um binário pré-compilado)
- Adicione a seguinte linha ao seu arquivo
Target.cs:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Para Unreal Engine 5.6 e posterior:
- Funciona com builds do motor tanto compiladas a partir do código-fonte quanto pré-compiladas
- Adicione a seguinte linha ao seu arquivo
Target.cs:
StaticAllocator = StaticAllocatorType.Ansi;
Isso força o Unreal Engine a usar o alocador ANSI no Android e iOS, correspondendo ao alocador usado pelo whisper.cpp.