Support
Email localnpcsupport@gmail.com.
What to send
Email localnpcsupport@gmail.com. Please include:
- your Unity version (for example 6000.3.10f1),
- your Windows version (for example Windows 11 23H2),
- the Console log (in the Console window's menu, Open Editor Log; for a build, its player log),
- the Diagnostics window export (the CSV file from step 1),
- whether the problem also happens in the 01_QuickStart sample scene.
We are a small team, so a reply can take a few days.
Before you write
If you encounter an issue not covered in this playbook:
- Export a diagnostics report: after a Play session with the NPC, open Tools > LocalNPC > Diagnostics Window and click the Export CSV button.
- Check the generated
LocalNPC_BuildManifest.jsonfor checksum mismatches. - Email us, as described below.
Most problems have an entry in the Troubleshooting Playbook.
Sending a log from a built game (Player.log)
In the Editor: in the Console window's menu, Open Editor Log.
For a built game, the log is at %USERPROFILE%\AppData\LocalLow\<company name>\<product name>\Player.log (the company and product names are in your Project Settings > Player). The previous run is kept as Player-prev.log, and Unity overwrites Player.log each time the game starts, so copy it before you run the game again.
Known issues in v1.0
Known limits of this version, and what to do about each one.
- Very short phrases. A very short phrase can still be dropped when Whisper reports no speech for the turn; the phrases "you" and "the end" are always ignored. If a short reply gets no answer, say a little more, or send it as typed text.
VoiceActivityGateevent order. If you use this class in your own code: it can raiseOnUtteranceCancelledjust beforeOnUtteranceCompleted; treat Completed as the result.- Loud steady noise (fan, air conditioner). The microphone follows the level of steady noise (tested offline with recordings of one fan, not in the app), but speech must be about 8 dB louder than the noise to be heard, and a voice turn ends after 12 s at most. If the NPC answers late or not at all near loud noise, and the Speech Level meter (Inspector of
MicrophoneCapture, in Play mode) shows more than about 20 % while nobody speaks, lower the microphone input volume in Windows (Settings > System > Sound > Input) or move the microphone away from the noise. - Reply time. Typically about 3 seconds after you stop talking: a 0.9 second end-of-speech wait plus about 2 seconds (measured 2.04 to 2.25 s on one laptop, Balanced preset, five voice turns). It depends on your hardware, and we have not measured other machines yet. On a 2018 laptop the speech-to-text step alone took 0.6 to 0.9 s for a 3 s clip.
- Older CPUs. Tested on CPUs with AVX2; on older CPUs a slower library is used, which was not tested on such a CPU.
- Kiosk models. In StreamingAssets mode, the language model in the download folder is used first if one is there. For a kiosk, keep only the bundled copy.
- Microphone unplugged or switched. This is tested with automated tests only. If voice input stops, call
StopListeningand thenStartListening. - One listening NPC. Only one
NpcAgentcan listen to the microphone at a time. CallStopListeningon one beforeStartListeningon another. - Kiosk sample. The Kiosk sample was tested with loudspeakers; a headset was not tried.
- Speech recognition out of memory. If it runs out of memory, voice input stops until you call
PrewarmAsyncagain. Typed input keeps working. - Voice field of
NpcPersonality.NpcPersonality.voiceis not used in v1.0; set the voice withNpcAgent.SystemVoice. StopAfterSentence. AfterStopAfterSentence, a sentence that was already being prepared can still be heard.- ARKit preset. The ARKit preset has not been tested on a real head yet.
- uLipSync. uLipSync is optional and not included. Put
uLipSyncandULipSyncBridgeon a GameObject without anAudioSource, for example a child of the NPC. Then dragULipSyncBridgeinto the NPC's Viseme Driver slot. LocalNPC ships no uLipSync calibration profile; make one with uLipSync's own tools. See Lip Sync Setup. - Narrator voices. The Windows 11 "Natural" voices of Narrator are not available to LocalNPC (checked on one PC). Add a normal voice in Settings > Time & language > Speech.
- Other platforms. On macOS, Linux and other platforms LocalNPC does nothing. But if your own code calls
MicrophoneCapture.StartCaptureorLocalNpc.EnsureModelsAsyncthere, the microphone still opens or the download still starts. Do not call them on these platforms. - WebGL. WebGL builds do not compile: the microphone code uses Unity's
Microphoneclass, which WebGL does not have (found by reading the code; no WebGL build was tried). - Smart App Control and Burst. When the optional Inference Engine package (
com.unity.ai.inference) is installed, Windows Smart App Control can block the file that Unity's Burst compiler builds in the Editor (error 4551 in the Console; seen on one development PC). LocalNPC v1.0 does not use the Inference Engine. Workaround, in the Editor only: turn off Jobs > Burst > Enable Compilation. Do not turn Smart App Control off.
From Troubleshooting, section 6.