Iniziare
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-speech-recognition`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/speech-recognition/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Installazione
Sezione intitolata “Installazione”bun add @capgo/capacitor-speech-recognitionbunx cap syncImportazione
Sezione intitolata “Importazione”import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';API Panoramica
Sezione intitolata “API Panoramica”available
Sezione intitolata “disponibile”Controlla se il servizio di riconoscimento vocale nativo è utilizzabile sul dispositivo corrente.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.available();isOnDeviceRecognitionAvailable
Sezione intitolata “isOnDeviceRecognitionAvailable”Controlla se il percorso di riconoscimento in dispositivo più recente è disponibile per la selezione di lingua.
Questo è il controllo di capacità che dovresti utilizzare prima di abilitare useOnDeviceRecognition.
A true il risultato significa che il dispositivo, la versione del sistema operativo e la lingua possono utilizzare il percorso più recente per il riconoscimento in dispositivo per quella piattaforma.
Restituisce false quando il dispositivo supporta solo il percorso del riconoscitore legacy.
Documentazione del SDK: iOS: "Speech" Android: Riconoscitore di parola
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.isOnDeviceRecognitionAvailable();Inizia a captare l'audio e a trascrivere la parola.
Quando partialResults è true, la promessa restituita si risolve immediatamente e gli aggiornamenti sono
inoltrati attraverso il partialResults listener fino a quando la sessione non finisce.
La strada predefinita mantiene il comportamento del riconoscitore di parola legacy per compatibilità con il passato.
Passa useOnDeviceRecognition: true solo dopo aver controllato
.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.start();Smette di ascoltare e smonta le risorse native.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.stop();forceStop
Sezione intitolata “forceStop”Interrompe forzatamente la sessione corrente.
Sul sistema Android, si tenta prima di fermare normalmente e poi si ricade sulla distruzione/riconfigurazione dopo timeout.
Sul sistema iOS, la sessione corrente viene interrotta immediatamente.
Se è presente un trascrittore parziale memorizzato, viene emesso attraverso il partialResults listener con forced: true.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.forceStop();getLastPartialResult
Sezione intitolata “getLastPartialResult”Ottiene il risultato di trascrizione parziale memorizzato più recente.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.getLastPartialResult();setPTTState
Sezione intitolata “setPTTState”Aggiorna lo stato del pulsante di parola in tempo reale attuale.
Usalo insieme a continuousPTT o con un flusso personalizzato di attesa per la parola in tempo reale.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.setPTTState({} as PTTStateOptions);getSupportedLanguages
Sezione intitolata “getSupportedLanguages”Ottiene le locuzioni supportate dal riconoscitore sottostante.
I dispositivi Android 13+ non espongono più questa lista; in quel caso languages è vuoto.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.getSupportedLanguages();isListening
Sezione intitolata “isListening”Restituisce se il plugin sta ascoltando attivamente la parola.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.isListening();checkPermissions
Sezione intitolata “checkPermissions”Ottiene lo stato di autorizzazione corrente.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.checkPermissions();requestPermissions
Sezione intitolata “requestPermissions”Richiede i permessi per il microfono + riconoscimento vocale.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.requestPermissions();Riferimento di tipo
Sezione intitolata “Riferimento di tipo”SpeechRecognitionAvailability
Sezione intitolata “Disponibilità del riconoscimento vocale”export interface SpeechRecognitionAvailability { available: boolean;}SpeechRecognitionStartOptions
Sezione intitolata “SpeechRecognitionStartOptions”Configura come il riconoscitore si comporta quando si chiama .
export interface SpeechRecognitionStartOptions { /** * Locale identifier such as `en-US`. When omitted the device language is used. */ language?: string; /** * Maximum number of final matches returned by native APIs. Defaults to `5`. */ maxResults?: number; /** * Prompt message shown inside the Android system dialog (ignored on iOS). */ prompt?: string; /** * When `true`, Android shows the OS speech dialog instead of running inline recognition. * Defaults to `false`. */ popup?: boolean; /** * Emits partial transcription updates through the `partialResults` listener while audio is captured. */ partialResults?: boolean; /** * Enables native punctuation handling where supported (iOS 16+). */ addPunctuation?: boolean; /** * Opt in to the platform's newer on-device recognition path when available. * * On iOS 26+, this uses Apple's `SpeechAnalyzer` / `SpeechTranscriber` pipeline. * On recent Android versions, this uses the on-device `SpeechRecognizer` path. * * It is intentionally opt-in so existing apps keep the legacy flow unless they choose * to roll out the new behavior. * * Use {@link SpeechRecognitionPlugin.isOnDeviceRecognitionAvailable} before enabling it in production. * * Platform SDK docs: * iOS: [Speech](https://developer.apple.com/documentation/speech), * [SpeechAnalyzer](https://developer.apple.com/documentation/speech/speechanalyzer), * [SpeechTranscriber](https://developer.apple.com/documentation/speech/speechtranscriber) * Android: [SpeechRecognizer](https://developer.android.com/reference/android/speech/SpeechRecognizer) * * Defaults to `false`. */ useOnDeviceRecognition?: boolean; /** * Allow a number of milliseconds of silence before splitting the recognition session into segments. * Required to be greater than zero and currently supported on Android only. */ allowForSilence?: number; /** * EXPERIMENTAL: Keep a PTT session alive across silence by restarting recognition while the button stays held. * * This restart behavior is implemented for Android inline recognition and iOS native recognition. */ continuousPTT?: boolean;}SpeechRecognitionMatches
Sezione intitolata “SpeechRecognitionMatches”export interface SpeechRecognitionMatches { matches?: string[];}ForceStopOptions
Sezione intitolata “ForceStopOptions”Opzioni per .
export interface ForceStopOptions { /** * Android only: timeout in milliseconds before forcing stop via destroy/recreate. * * On iOS, the current session is stopped immediately and this value is ignored. * * Defaults to `1500`. */ timeout?: number;}LastPartialResult
Sezione intitolata “LastPartialResult”Risultato da .
export interface LastPartialResult { /** * Whether a partial result is currently cached. */ available: boolean; /** * The most recent transcript text known to the native recognizer. */ text: string; /** * All current match alternatives when available. */ matches?: string[];}PTTStateOptions
Sezione intitolata “PTTStateOptions”Opzioni per .
export interface PTTStateOptions { /** * Whether the PTT button is currently held. */ held: boolean;}SpeechRecognitionLanguages
Sezione intitolata “Lingue di riconoscimento vocale”export interface SpeechRecognitionLanguages { languages: string[];}SpeechRecognitionListening
Sezione intitolata “Ascolto di riconoscimento vocale”export interface SpeechRecognitionListening { listening: boolean;}SpeechRecognitionPermissionStatus
Sezione intitolata “Stato di autorizzazione di riconoscimento vocale”Mappa di autorizzazione restituita da checkPermissions e requestPermissions.
export interface SpeechRecognitionPermissionStatus { speechRecognition: PermissionState;}SpeechRecognitionSegmentResultEvent
Sezione intitolata “Evento di risultato di segmentazione di riconoscimento vocale”Sollevato ogni volta che viene prodotto un risultato segmentato (solo per Android).
export interface SpeechRecognitionSegmentResultEvent { matches: string[];}SpeechRecognitionPartialResultEvent
Sezione intitolata “SpeechRecognitionPartialResultEvent”Sollevata ogni volta che viene prodotta una trascrizione parziale.
export interface SpeechRecognitionPartialResultEvent { /** * Current recognition matches when the native recognizer reports them. * * This can be omitted for forced or accumulated-only payloads. */ matches?: string[]; /** * Accumulated transcription from earlier continuous PTT cycles. */ accumulated?: string; /** * Final accumulated text including the current result. */ accumulatedText?: string; /** * `true` when the plugin is restarting recognition inside a continuous PTT session. */ isRestarting?: boolean; /** * `true` when the payload was emitted by `forceStop()`. */ forced?: boolean;}SpeechRecognitionListeningEvent
Sezione intitolata “SpeechRecognitionListeningEvent”Sollevata quando cambia lo stato di ascolto.
export interface SpeechRecognitionListeningEvent { /** * Finite state of the recognition session. */ state?: ListeningFiniteState; /** * Unique identifier for the current listening session. */ sessionId?: number; /** * Why this state transition occurred. */ reason?: ListeningReason; /** * Error code when the transition is caused by an error. */ errorCode?: string; /** * Backward-compatible binary state used by earlier releases. */ status?: 'started' | 'stopped';}Fonte di Verità
Sezione intitolata “Fonte di Verità”Questa pagina è generata dal plugin. src/definitions.ts. Riavvia la sincronizzazione quando i dati pubblici API cambiano in fase di sviluppo.
Continua da Getting Started
Sezione intitolata “Continua da Getting Started”Se stai utilizzando Getting Started per pianificare dashboard e API operazioni, connettilo con Utilizza @capgo/capacitor-riconoscimento-voce per la capacità nativa in Utilizza @capgo/capacitor-riconoscimento-voce Panoramica di API per i dettagli di implementazione in Panoramica di API Introduzione per i dettagli di implementazione in Introduzione Chiavi di API per i dettagli di implementazione in Chiavi di API Dispositivi per il dettaglio di implementazione in Dispositivi.