Picovoice Wordmark
Start Building
Introduction
Introduction
AndroidC.NETiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSNode.jsPythonWeb
SummaryPicovoice picoLLMGPTQ
Introduction
AndroidC.NETFlutteriOSJavaLinuxmacOSNode.jsPythonRaspberry PiReactReact NativeRustWebWindows
AndroidC.NETFlutteriOSJavaNode.jsPythonReactReact NativeRustWeb
SummaryPicovoice LeopardAmazon TranscribeAzure Speech-to-TextGoogle ASRGoogle ASR (Enhanced)IBM Watson Speech-to-TextWhisper Speech-to-Text
FAQ
Introduction
AndroidC.NETFlutteriOSJavaLinuxmacOSNode.jsPythonRaspberry PiReactReact NativeRustWebWindows
AndroidC.NETFlutteriOSJavaNode.jsPythonReactReact NativeRustWeb
SummaryPicovoice Cheetah
FAQ
Introduction
AndroidC.NETiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidC.NETiOSNode.jsPythonWeb
SummaryAmazon PollyAzure TTSElevenLabsOpenAI TTSPicovoice Orca
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
SummaryPicovoice KoalaMozilla RNNoise
Introduction
AndroidCiOSLinuxmacOSNode.jsPythonRaspberry PiWebWindows
AndroidCNode.jsPythoniOSWeb
SummaryPicovoice EaglepyannoteSpeechBrainWeSpeaker
Introduction
AndroidCiOSLinuxmacOSPythonRaspberry PiWebWindows
AndroidCiOSPythonWeb
SummaryPicovoice FalconAmazon TranscribeAzure Speech-to-TextGoogle Speech-to-Textpyannote
Introduction
AndroidArduinoCChrome.NETEdgeFirefoxFlutteriOSJavaLinuxmacOSMicrocontrollerNode.jsPythonRaspberry PiReactReact NativeRustSafariUnityWebWindows
AndroidC.NETFlutteriOSJavaMicrocontrollerNode.jsPythonReactReact NativeRustUnityWeb
SummaryPorcupineSnowboyPocketSphinx
Wake Word TipsFAQ
Introduction
AndroidCChrome.NETEdgeFirefoxFlutteriOSJavaLinuxmacOSNode.jsPythonRaspberry PiReactReact NativeRustSafariUnityWebWindows
AndroidC.NETFlutteriOSJavaNode.jsPythonReactReact NativeRustUnityWeb
SummaryPicovoice RhinoGoogle DialogflowAmazon LexIBM WatsonMicrosoft LUIS
Expression SyntaxFAQ
Introduction
AndroidC.NETiOSLinuxmacOSNode.jsPythonRaspberry PiRustWebWindows
AndroidC.NETiOSNode.jsPythonRustWeb
SummaryPicovoice CobraWebRTC VAD
FAQ
Introduction
AndroidC.NETFlutteriOSNode.jsPythonReact NativeRustUnityWeb
AndroidC.NETFlutteriOSNode.jsPythonReact NativeRustUnityWeb
Introduction
C.NETNode.jsPython
C.NETNode.jsPython
FAQGlossary

Voice Processor
Unity API

Unity SDKs will no longer be maintained after December 15, 2025. If you plan to use the Voice Processor Unity SDK for commercial purposes, please contact us.

API Reference for the Voice Processor Unity SDK.


VoiceProcessorFrameListener

delegate void VoiceProcessorFrameListener(short[] frame);

Listener type that can be added to VoiceProcessor with .addFrameListener(). Captures audio frames that are generated by the recording thread.


VoiceProcessor

class VoiceProcessor { }

Class for capturing audio and delivering audio data.


VoiceProcessor.Instance

public static VoiceProcessor Instance

Gets the singleton instance of VoiceProcessor.


VoiceProcessor.CurrentDeviceIndex

public int CurrentDeviceIndex

The index of the currently selected audio recording device.


VoiceProcessor.CurrentDeviceName

public string CurrentDeviceName

The name of the currently selected audio recording device.


VoiceProcessor.Devices

public List<string> Devices

A list of available audio recording devices on the current system.


VoiceProcessor.FrameLength

public int FrameLength

Gets the number of samples per frame that the VoiceProcessor will deliver.


VoiceProcessor.SampleRate

public int SampleRate

Gets the audio sample rate that the VoiceProcessor will record with.


VoiceProcessor.IsRecording

public bool IsRecording

Gets whether the VoiceProcessor is capturing audio or not.


VoiceProcessor.NumFrameListeners

public int NumFrameListeners

Gets number of registered VoiceProcessorFrameListeners.


VoiceProcessor.AddFrameListener()

public void AddFrameListener(VoiceProcessorFrameListener listener)

Add a frame listener that will receive audio frames generated by the VoiceProcessor.

Parameters

  • listener VoiceProcessorFrameListener : Listener for processing frames of audio.

VoiceProcessor.AddFrameListeners()

public void AddFrameListeners(VoiceProcessorFrameListener[] listener)

Add multiple frame listeners that will receive audio frames generated by the VoiceProcessor.

Parameters

  • listeners VoiceProcessorFrameListener[] : Listeners for processing frames of audio.

VoiceProcessor.RemoveFrameListener()

public void RemoveFrameListener(VoiceProcessorFrameListener listener)

Remove a frame listener from the VoiceProcessor. It will no longer receive audio frames.

Parameters

  • listener VoiceProcessorFrameListener : Listener to remove.

VoiceProcessor.RemoveFrameListeners()

public void RemoveFrameListeners(VoiceProcessorFrameListener[] listener)

Remove frame listeners from the VoiceProcessor. They will no longer receive audio frames.

Parameters

  • listeners VoiceProcessorFrameListener[] : Listeners to remove.

VoiceProcessor.ClearFrameListeners()

public void ClearFrameListeners()

Clears all registered frame listeners.


VoiceProcessor.StartRecording()

public void StartRecording(int frameLength, int sampleRate)

Starts audio recording with the specified audio properties.

Parameters

  • frameLength int : The length of each audio frame, in number of samples.
  • sampleRate int : The sample rate to record audio at, in Hz.

Throws

  • VoiceProcessorException : if an error is encountered while trying to start the recorder.

VoiceProcessor.StopRecording()

public void StopRecording()

Stops audio recording and releases audio resources.


VoiceProcessor.UpdateDevices()

public void UpdateDevices()

Updates list of available audio devices.

Throws

  • VoiceProcessorException : if an error is encountered while trying to update devices.

VoiceProcessor.ChangeDevice()

public void ChangeDevice(int deviceIndex)

Change the active audio recording device.

Parameters

  • deviceIndex int : Index of the new audio capture device.

Throws

  • VoiceProcessorException : if an error is encountered while trying to change device.

VoiceProcessorException

public class VoiceProcessorException : Exception

Exception thrown if an error occurs within the VoiceProcessor.

Exceptions:

public class VoiceProcessorArgumentException : VoiceProcessorException { }
public class VoiceProcessorStateException : VoiceProcessorException { }

Was this doc helpful?

Issue with this doc?

Report a GitHub Issue
Voice Processor Unity API
  • VoiceProcessorFrameListener
  • VoiceProcessor
  • Instance
  • CurrentDeviceIndex
  • CurrentDeviceName
  • Devices
  • FrameLength
  • SampleRate
  • IsRecording
  • NumFrameListeners
  • AddFrameListener()
  • AddFrameListeners()
  • RemoveFrameListener()
  • RemoveFrameListeners()
  • ClearFrameListeners()
  • StartRecording()
  • StopRecording()
  • UpdateDevices()
  • ChangeDevice()
  • VoiceProcessorException
Voice AI
  • Leopard Speech-to-Text
  • Cheetah Streaming Speech-to-Text
  • Orca Text-to-Speech
  • Koala Noise Suppression
  • Eagle Speaker Recognition
  • Falcon Speaker Diarization
  • Porcupine Wake Word
  • Rhino Speech-to-Intent
  • Cobra Voice Activity Detection
Local LLM
  • picoLLM Inference
  • picoLLM Compression
  • picoLLM GYM
Resources
  • Docs
  • Console
  • Blog
  • Use Cases
  • Playground
Sales & Services
  • Consulting
  • Foundation Plan
  • Enterprise Plan
  • Enterprise Support
Company
  • About us
  • Careers
Follow Picovoice
  • LinkedIn
  • GitHub
  • X
  • YouTube
  • AngelList
Subscribe to our newsletter
Terms of Use
Privacy Policy
© 2019-2025 Picovoice Inc.