Notice for App Developers

To use these methods, the speech module must be installed in the native app:

Hierarchy

  • Speech

Methods

  • Check permissions status for speech recognition

    Example:

     
    const modules = await Eitri.modules()
    if(!modules.speech){
    return // speech module is unavailable, disable interfaces related to speech recognition
    }
    const speechStatus = await Eitri.speech.checkPermission()
    console.log(speechStatus)

    /* Example output from this console.log:
    {
    status: "DENIED",
    }
    */

    🚨 Android only: If executed before the first permission request, the default response is BLOCKED.

    Compatibility Control

    Returns Promise<SpeechPermissionOutput>

  • Request permission for speech recognition

    Example:

    const modules = await Eitri.modules()
    if(!modules.speech){
    return // speech module is unavailable, disable interfaces related to speech recognition
    }
    const speechStatus = await Eitri.speech.requestPermission()
    console.log(speechStatus)

    /* Example output from this console.log:
    {
    status: "GRANTED",
    }
    */

    Compatibility Control

    Returns Promise<SpeechPermissionOutput>

  • Start speech recognition

    Example:

    try {
    const modules = await Eitri.modules()
    const speechRecognitionMethod = modules?.speech?.startSpeechRecognition
    if(!speechRecognitionMethod){
    return // startSpeechRecognition is unavailable, disable interfaces related to speech recognition
    }
    const permission = await Eitri.speech.checkPermission()

    if (permission.status !== "GRANTED") {
    // Handle permission denied or blocked
    if (permission.status === "DENIED") {
    const granted = await Eitri.speech.requestPermission()
    if (granted.status !== "GRANTED") {
    return // permission still not granted, exit or notify user
    }
    }
    }
    const result = await Eitri.speech.startSpeechRecognition({
    language: "en-US"
    })
    console.log(result.text)
    // Output: "Hello, world"
    return
    } catch (e) {
    console.log(e)
    // handle errors and notify user
    }

    Compatibility Control

    Parameters

    Returns Promise<SpeechRecognitionOutput>

  • Start speech recognition with partial results, returning the unique channel name for the retrieval of results using EventBus.

    The data sent to the EventBus will be of type SpeechPartialResultsDataChunk.

    Example:

    let speechPartialResultsOutput = null
    try {
    const modules = await Eitri.modules()
    const speechRecognitionStreamMethod = modules?.speech?.startSpeechRecognitionStream
    if(!speechRecognitionStreamMethod){
    return // startSpeechRecognitionStream is unavailable, disable interfaces related to speech recognition with partial results
    }
    const permission = await Eitri.speech.checkPermission()

    if (permission.status !== "GRANTED") {
    // Handle permission denied or blocked
    if (permission.status === "DENIED") {
    const granted = await Eitri.speech.requestPermission()
    if (granted.status !== "GRANTED") {
    return // permission still not granted, exit or notify user
    }
    }
    }
    speechPartialResultsOutput = await speechRecognitionStreamMethod({language: "pt-br"})
    Eitri.eventBus.subscribe({
    channel: speechPartialResultsOutput.dataChannel,
    callback: (result) => {
    if (result.final) {
    Eitri.eventBus.clear({channel: channel});
    }
    console.log(result.data.text);
    // Output: "Ó"
    // "Olá"
    // "Olá mu"
    // "Olá mundo"
    }
    });
    }
    } catch (e) {
    console.log(e)
    Eitri.eventBus.clear({channel: channel});
    // handle errors and notify user
    }

    Compatibility Control

    Parameters

    Returns Promise<SpeechPartialResultsResponse>

  • Stop speech recognition

    Example:

    const modules = await Eitri.modules()
    if (!modules.speech){
    return // speech module is unavailable, disable interfaces related to speech recognition
    }
    await Eitri.speech.stopSpeechRecognition()

    Compatibility Control

    Returns Promise<void>

Generated using TypeDoc