Getting Started
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.
Installa
Sezione intitolata “Installa”Puoi utilizzare la nostra configurazione assistita da AI per installare il plugin. Aggiungi le Capgo competenze al tuo strumento AI utilizzando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi utilizza il seguente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-speech-recognition` plugin in my project.Se preferisci l'installazione manuale, installa il plugin eseguendo i seguenti comandi e segui le istruzioni specifiche per la piattaforma riportate di seguito:
bun add @capgo/capacitor-speech-recognitionbunx cap syncImporta
Sezione intitolata “Importa”import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';API Panoramica
Sezione intitolata “API Panoramica”available
Sezione intitolata “disponibile”Verifica se il servizio di riconoscimento vocale nativo è utilizzabile sul dispositivo corrente.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.available();console.log(result);isOnDeviceRecognitionAvailable
Sezione intitolata “isOnDeviceRecognitionAvailable”Verifica se il percorso di riconoscimento on-device più recente della piattaforma è disponibile per la selezionata località.
Questo è il controllo di capacità che dovresti utilizzare prima di abilitare useOnDeviceRecognition.
A true Il risultato indica che il dispositivo corrente, la versione dell'OS e la locale possono utilizzare la nuova strada per la piattaforma.
Restituisce false quando il dispositivo supporta solo il percorso di riconoscimento legacy.
Documentazione del SDK della piattaforma: iOS: Speech SpeechRecognizer
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.isOnDeviceRecognitionAvailable();console.log(result);Inizia a capturare l'audio e a trascrivere la parola.
Quando partialResults è true, la promessa restituita si risolve immediatamente e gli aggiornamenti vengono trasmessi attraverso il partialResults listener fino alla fine della sessione.
Il percorso predefinito mantiene il comportamento del riconoscitore legacy per compatibilità con il passato.
Passa useOnDeviceRecognition: true solo dopo aver controllato
.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.start();console.log(result);Smette di ascoltare e smonta le risorse native.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.stop();forceStop
Sezione intitolata “forceStop”Interrompe la sessione corrente.
Su Android, si tenta prima di fermare normalmente e poi si ricorre alla distruzione/riconfigurazione dopo timeout.
Su iOS, la sessione corrente viene interrotta immediatamente.
Se è presente un trascrittore parziale in cache, 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 più recente in cache.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.getLastPartialResult();console.log(result);setPTTState
Sezione intitolata “setPTTState”Aggiorna lo stato del pulsante di attivazione push-to-talk corrente.
Usa questo insieme a continuousPTT o con un flusso di attesa personalizzato.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.setPTTState({ held: true });getSupportedLanguages
Sezione intitolata “getSupportedLanguages”Ottiene le località 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';
const result = await SpeechRecognition.getSupportedLanguages();console.log(result);isListening
Sezione intitolata “isListening”Restituisce se il plugin sta attivamente ascoltando la voce.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.isListening();console.log(result);checkPermissions
Sezione intitolata “checkPermissions”Ottiene lo stato di autorizzazione corrente.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.checkPermissions();console.log(result);requestPermissions
Sezione intitolata “richiedi autorizzazioni”Richiede le autorizzazioni per il microfono + riconoscimento vocale.
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.requestPermissions();console.log(result);Tipo di Riferimento
Sezione intitolata “Tipo di Riferimento”SpeechRecognitionAvailability
Sezione intitolata “Disponibilità di Riconoscimento Vocale”export interface SpeechRecognitionAvailability { available: boolean;}SpeechRecognitionStartOptions
Sezione intitolata “SpeechRecognitionStartOptions”Configura il comportamento del riconoscitore 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 “RiconoscimentoParoleMatch”export interface SpeechRecognitionMatches { matches?: string[];}ForceStopOptions
Sezione intitolata “ForzaStopOptions”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 “UltimoRisultatoParziale”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 “RiconoscimentoParoleLingue”export interface SpeechRecognitionLanguages { languages: string[];}SpeechRecognitionListening
Sezione intitolata “Riconoscimento vocale - ascolto”export interface SpeechRecognitionListening { listening: boolean;}SpeechRecognitionPermissionStatus
Sezione intitolata “StatoDiConsensoPerLaReconoscimentoDiParola”Mappa di autorizzazione restituita da checkPermissions e requestPermissions.
export interface SpeechRecognitionPermissionStatus { speechRecognition: PermissionState;}SpeechRecognitionSegmentResultEvent
Evento di riconoscimento vocale SegmentResultSollevato ogni volta che viene prodotto un risultato segmentato (solo per Android).
export interface SpeechRecognitionSegmentResultEvent { matches: string[];}SpeechRecognitionPartialResultEvent
Sezione intitolata “Riconoscimento vocale - risultato parziale”Sollevato ogni volta che viene prodotto 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”Sollevato quando lo stato di ascolto cambia.
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’s src/definitions.tsRiavvia la sincronizzazione quando il pubblico API cambia upstream.
Continua da qui: Iniziare
Sezione intitolata “Continua da qui: Iniziare”Se stai utilizzando Getting Started per pianificare il dashboard e le API operazioni, connettilo con Usando @capgo/capacitor-riconoscimento-voce per la capacità nativa in Usando @capgo/capacitor-riconoscimento-voce API Panoramica per i dettagli di implementazione in API Panoramica Introduzione per i dettagli di implementazione in Introduzione API Chiavi per i dettagli di implementazione in API Chiavi, e Dispositivi per i dettagli di implementazione in Dispositivi.