Zum Inhalt springen

Erste Schritte

GitHub

Du kannst unser KI-gestütztes Setup nutzen, um das Plugin zu installieren. Füge die Capgo Skills mit dem folgenden Befehl deinem KI-Tool hinzu:

Terminalfenster
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Nutze dann diesen Prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-speech-recognition` plugin in my project.

Wenn du ein manuelles Setup bevorzugst, installiere das Plugin mit den folgenden Befehlen und befolge die plattformspezifischen Anweisungen unten:

Terminalfenster
npm install @capgo/capacitor-speech-recognition
npx cap sync
import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';

Mikrofonzugriff anfordern, ein partialResults listener, dann eine Session mit Streaming-Updates starten.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.requestPermissions();
const partialListener = await SpeechRecognition.addListener('partialResults', ({ matches }) => {
setTranscript(matches?.[0] ?? '');
});
await SpeechRecognition.start({ language: 'en-US', partialResults: true });
// When leaving the screen:
await SpeechRecognition.stop();
await partialListener.remove();
  • Aufräumen: Listener entfernen, wenn der Screen verlassen wird.
  • Sprachen: Verwende BCP 47 Tags, die zu deiner UI passen.
  • Web: nicht unterstützt; nutze separat eine Browser-Spracherkennung API, falls du Diktat nur im Web brauchst.

Prüft, ob der native Speech-Recognition-Service auf dem aktuellen Gerät verfügbar ist.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.available();
console.log(result);

Prüft, ob der neuere On-Device-Erkennungspfad der Plattform für die gewählte Locale verfügbar ist.

Dies ist der Capability-Check, den du vor dem Aktivieren verwenden solltest useOnDeviceRecognition. A true result bedeutet, dass das aktuelle Gerät, die OS-Version und die Locale den neueren On-Device-Pfad für diese Plattform nutzen können.

Rückgabewert false wenn das Gerät nur den Legacy-Recognizer-Pfad unterstützt.

Plattform SDK Doku: iOS: Speech Android: SpeechRecognizer

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.isOnDeviceRecognitionAvailable();
console.log(result);

Startet die Audioaufnahme und die Transkription der Sprache.

Wenn partialResults ist true, das zurückgegebene Promise wird sofort aufgelöst und Updates werden über den partialResults Listener gestreamt, bis die Sitzung endet.

Der Standardpfad behält das Verhalten des Legacy-Recognizers bei, um die Abwärtskompatibilität zu gewährleisten. Übergeben Sie useOnDeviceRecognition: true nur nach Überprüfung von .

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.start();
console.log(result);

Beendet das Zuhören und gibt native Ressourcen frei.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.stop();

Erzwingt das Beenden der aktuellen Session.

Unter Android wird zuerst ein normaler Stopp versucht, anschließend wird auf Destroy/Recreate zurückgegriffen. timeout. Unter iOS wird die aktuelle Session sofort gestoppt.

Wenn ein partielles Transkript gecacht ist, wird es über den partialResults Listener mit forced: true.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.forceStop();

Gibt das zuletzt gecachte partielle Transkriptionsergebnis zurück.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.getLastPartialResult();
console.log(result);

Aktualisiert den aktuellen Zustand der Push-to-Talk-Taste.

Verwenden Sie dies zusammen mit continuousPTT oder mit einem eigenen Hold-to-Talk-Flow.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
await SpeechRecognition.setPTTState({ held: true });

Gibt die vom zugrunde liegenden Recognizer unterstützten Locales zurück.

Android 13+ Geräte stellen diese Liste nicht mehr bereit; in diesem Fall languages ist sie leer.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.getSupportedLanguages();
console.log(result);

Gibt zurück, ob das Plugin aktiv auf Sprache hört.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.isListening();
console.log(result);

Ruft den aktuellen Berechtigungsstatus ab.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.checkPermissions();
console.log(result);

Fordert die Berechtigungen für Mikrofon + Spracherkennung an.

import { SpeechRecognition } from '@capgo/capacitor-speech-recognition';
const result = await SpeechRecognition.requestPermissions();
console.log(result);
export interface SpeechRecognitionAvailability {
available: boolean;
}

Konfiguriere das Verhalten des Recognizers beim Aufruf von .

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;
}
export interface SpeechRecognitionMatches {
matches?: string[];
}

Optionen für .

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;
}

Ergebnis von .

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[];
}

Optionen für .

export interface PTTStateOptions {
/**
* Whether the PTT button is currently held.
*/
held: boolean;
}
export interface SpeechRecognitionLanguages {
languages: string[];
}
export interface SpeechRecognitionListening {
listening: boolean;
}

SpeechRecognitionPermissionStatus

Abschnitt „SpeechRecognitionPermissionStatus“

Berechtigungsmappe, die von checkPermissions und requestPermissions.

export interface SpeechRecognitionPermissionStatus {
speechRecognition: PermissionState;
}

SpeechRecognitionSegmentResultEvent

Abschnitt „SpeechRecognitionSegmentResultEvent“

Wird ausgelöst, sobald ein segmentiertes Ergebnis vorliegt (nur Android).

export interface SpeechRecognitionSegmentResultEvent {
matches: string[];
}

Wird ausgelöst, sobald eine partielle Transkription erstellt wird.

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;
}

Wird ausgelöst, wenn sich der Zuhörzustand ändert.

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';
}

Diese Seite wird aus dem Plugin generiert src/definitions.ts. Führe den Sync erneut aus, wenn sich das öffentliche API upstream ändert.

Wenn du es nutzt Erste Schritte um Dashboard- und API-Operationen zu planen, verbinde es mit @capgo/capacitor-speech-recognition verwenden für die native Funktion bei der Nutzung von @capgo/capacitor-speech-recognition, API Übersicht für Details zur Implementierung im API Overview, Einführung für die Implementierungsdetails in der Einleitung, API Schlüssel für das Implementierungsdetail in API Keys und Geräte für das Implementierungsdetail in Devices.