IBM Cloud Docs
Capire i risultati del riconoscimento vocale

Capire i risultati del riconoscimento vocale

Indipendentemente dall'interfaccia che utilizzi, il servizio IBM Watson® Speech to Text restituisce risultati di trascrizione che riflettono i parametri che specifichi. Il servizio restituisce tutto il contenuto della risposta JSON nel set di caratteri UTF-8.

Risposta della trascrizione di base

Il servizio restituisce la seguente risposta per gli esempi in Effettuare una richiesta di riconoscimento vocale. Gli esempi passano solo un file audio e il suo tipo di contenuto. L'audio pronuncia una singola frase senza pause evidenti tra le parole.

{
  "result_index": 0,
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.96,
          "transcript": "several tornadoes touch down as a line of severe thunderstorms swept through Colorado on Sunday "
        }
      ],
      "final": true
    }
  ]
}

Il servizio restituisce un oggetto SpeechRecognitionResults, che è l'oggetto di risposta di primo livello. Per queste semplici richieste, l'oggetto include un campo results e un campo result_index:

  • Il campo results fornisce un array di informazioni sui risultati della trascrizione. Per questo esempio, il campo alternatives include i valori di transcript e confidence del servizio nei risultati. Il campo final ha il valore true per indicare che questi risultati non cambieranno.
  • Il campo result_index fornisce un identificativo univoco per i risultati. L'esempio mostra i risultati finali per una richiesta con un singolo file audio che non ha pause e la richiesta non include parametri aggiuntivi. Quindi il servizio restituisce un singolo campo result_index con un valore 0, che è sempre l'indice iniziale.

Se l'audio di input è più complesso o la richiesta include parametri aggiuntivi, i risultati possono contenere molte più informazioni.

Il campo alternatives

Il campo alternatives fornisce un array di risultati della trascrizione. Per questa richiesta, l'array include solo un elemento.

  • Il campo transcript fornisce i risultati della trascrizione.
  • Il campo confidence è un punteggio che indica la fiducia del servizio nella trascrizione, che per questo esempio supera il 90%.

I campi final e result_index qualificano il significato di questi campi.

Le modifiche interne e i miglioramenti al servizio possono influenzare le trascrizioni e i punteggi di fiducia. Ad esempio, il riconoscimento vocale può essere migliorato per restituire risultati di trascrizione più precisi. Allo stesso modo, i punteggi di trascrizione e parola di fiducia potrebbero cambiare leggermente a seguito di un miglioramento del riconoscimento vocale. Tali modifiche dovrebbero essere modee, ma non aspettarsi trascrizioni e punteggi di fiducia per rimanere invariati nel tempo.

Il campo final

Il campo final indica se la trascrizione mostra i risultati finali della trascrizione:

  • Il campo è true per i risultati finali, ai quali non verrà apportata alcuna modifica. Il servizio non invia ulteriori aggiornamenti per i risultati finali.
  • Il campo è false per i risultati provvisori, che sono soggetti a modifiche. Se utilizzi il parametro interim_results con l'interfaccia WebSocket, il servizio restituisce le ipotesi in evoluzione sotto forma di più campi results mentre trascrive l'audio. Per i risultati intermedi, il campo final è sempre false e il campo confidence è sempre omesso.

Per ulteriori informazioni sull'utilizzo dell'interfaccia WebSocket per ottenere risultati provvisori con modelli vocali di grandi dimensioni, modelli di generazione precedente e successiva, vedi i seguenti argomenti:

Il campo result_index

Il campo result_index fornisce un identificativo per i risultati che è univoco per quella richiesta. Se richiedi i risultati provvisori, il servizio invia più campi results per le ipotesi in evoluzione dell'audio di input. Gli indici dei risultati provvisori per lo stesso audio hanno sempre lo stesso valore, così come i risultati finali per lo stesso audio.

Lo stesso indice può essere utilizzato anche per più risultati finali di una singola richiesta. Indipendentemente dal fatto che tu richieda risultati provvisori, il servizio può restituire più risultati finali con lo stesso indice se il tuo audio include pause o lunghi periodi di silenzio. Per ulteriori informazioni, vedi Pause e silenzio.

Una volta che hai ricevuto i risultati finali per qualsiasi audio, il servizio non invia ulteriori risultati con tale indice per il resto della richiesta. L'indice per eventuali ulteriori risultati viene incrementato di uno.

Se il tuo audio produce più risultati finali, concatena gli elementi transcript dei risultati finali per assemblare la trascrizione completa dell'audio. Assemblare i risultati nell'ordine in cui li si riceve. Quando si assembla una trascrizione finale completa, è possibile ignorare i risultati intermedi per i quali il campo final è false.

Ulteriori contenuti di risposta

Molti parametri di riconoscimento vocale influenzano il contenuto della risposta del servizio. Alcuni parametri possono causare il servizio per restituire più risultati di trascrizione:

  • end_of_phrase_silence_time
  • interim_results
  • split_transcript_at_phrase_end

Alcuni parametri possono modificare il contenuto di una trascrizione:

  • profanity_filter
  • redaction
  • smart_formatting

Altri parametri possono aggiungere ulteriori informazioni ai risultati:

  • audio_metrics
  • keywords e keywords_threshold
  • max_alternatives
  • processing_metrics e processing_metrics_interval
  • speaker_labels
  • timestamps
  • word_alternatives_threshold
  • word_confidence

Per ulteriori informazioni sui parametri disponibili, consultare Utilizzo dei parametri di riconoscimento vocale e del riepilogo dei parametri.

Pause e silenzio

Come il servizio restituisce risultati dipende dall'interfaccia e dal modello che si usa per il riconoscimento vocale, così come l'audio che si passa al servizio. Per impostazione predefinita, il servizio trascrive un intero flusso audio come utteranza singola e restituisce un unico risultato finale per tutti gli audio. Tuttavia, il servizio può restituire più risultati finali in risposta alle seguenti condizioni:

  • L'audio contiene una pausa o un silenzio esteso tra parole pronunciate o frasi. Per la maggior parte delle lingue, l'intervallo di pausa predefinito che il servizio utilizza per determinare i risultati finali separati è 0.8 secondi. Per il cinese, l'intervallo predefinito è 0.6 secondi. È possibile utilizzare il parametro end_of_phrase_silence_time per modificare la durata dell'intervallo di pausa. Per ulteriori informazioni, vedi Periodo di silenzio al termine della frase.
  • Per i modelli di anteprima - generazione, l'utteranza raggiunge un massimo di due minuti. Il servizio suddivide una trascrizione in più risultati finali dopo due minuti di elaborazione continua.

I seguenti esempi mostrano le risposte con due risultati finali dalle interfacce HTTP e WebSocket. In entrambi i casi viene utilizzato lo stesso audio di input. L'audio pronuncia la frase "one two three four five six," con una pausa di un secondo tra le parole "three" e "four." Gli esempi utilizzano l'intervallo di pausa predefinito per il riconoscimento vocale.

  • Per le interfacce HTTP, il servizio invia sempre un singolo oggetto SpeechRecognitionResults. L'array alternatives ha un elemento separato per ogni risultato finale. La risposta ha un singolo campo result_index con il valore 0.

    {
      "result_index": 0,
      "results": [
        {
          "alternatives": [
            {
              "confidence": 0.99,
              "transcript": "one two three "
            }
          ],
          "final": true
        },
        {
          "alternatives": [
            {
              "confidence": 0.99,
              "transcript": "four five six "
            }
          ],
          "final": true
        }
      ]
    }
    
  • Per l'interfaccia WebSocket, il servizio invia gli stessi risultati dell'esempio precedente. La risposta include un singolo oggetto SpeechRecognitionResults, l'array alternatives ha un elemento separato per ogni risultato finale e la risposta ha un singolo campo result_index con un valore 0.

    {
      "result_index": 0,
      "results": [
        {
          "alternatives": [
            {
              "confidence": 0.99,
              "transcript": "one two three "
            }
          ],
          "final": true
        },
        {
          "alternatives": [
            {
              "confidence": 0.99,
              "transcript": "four five six "
            }
          ],
          "final": true
        }
      ]
    }
    

    Con l'interfaccia WebSocket, le risposte per i risultati provvisori contengono più oggetti JSON. Per ulteriori informazioni sull'utilizzo dell'interfaccia WebSocket per ottenere risultati provvisori con modelli vocali di grandi dimensioni, modelli di generazione precedente e successiva, vedi i seguenti argomenti:

Un silenzio di 30 secondi nell'audio trasmesso in streaming può causare un timeout di inattività. Per ulteriori informazioni, vedi Timeout.

Le esitazioni del discorso e i marcatori di esitazione

Il discorso spesso include le esitazioni o le pause verbali, che sono anche indicate come disfunzioni. Le esitazioni si verificano quando l'utente inserisce i fillers come "uhm", "uh", "hmm" e le utteranze non lessicali correlate mentre si parla. Il servizio gestisce le esitazioni in modo diverso per i modelli vocali di grandi dimensioni, i modelli precedenti e di nuova generazione.

Esitazioni per i modelli di generazione precedente

Per i modelli di generazione precedente, il servizio include indicatori di esitazione nei risultati di trascrizione per la maggior parte delle lingue. Diverse lingue possono utilizzare diversi marcatori di esitazione o non indicare esitazioni a tutti:

  • Per gli US English, i marcatori di esitazione sono indicati dal token %HESITATION. Le parole che generano indicatori di esitazione sono aah, ah, hm, hmm, huh, huh-uh, hum, ohh, ugh, uh, uh-huh, uh-oh, uh-uh, um e um-hum.
  • Per i giapponesi, i marcatori di esitazione iniziano tipicamente con D_.
  • Per lo spagnolo, il servizio non produce marcatori di esitazione.

Il seguente esempio mostra il token %HESITATION per una trascrizione inglese statunitense:

{
  "result_index": 0,
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.99,
          "transcript": ". . . that %HESITATION that's a . . ."
        }
      ],
      "final": true
    }
  ]
}

Gli indicatori di esitazione possono comparire sia nei risultati provvisori che finali. L'abilitazione della formattazione intelligente impedisce ai marcatori di esitazione di apparire nei risultati finali per l'inglese americano. Per ulteriori informazioni, vedi Formattazione intelligente.

Gli indicatori di esitazione possono essere inclusi anche in altri campi di una trascrizione. Ad esempio, se richiedi le date/ore per le singole parole di una trascrizione, il servizio riporta l'ora di inizio e di fine di ciascun indicatore di esitazione.

{
  "result_index": 0,
  "results": [
    {
      "alternatives": [
        {
          "timestamps": [
            . . .
            [
              "that",
              7.31,
              7.69
            ],
            [
              "%HESITATION",
              7.69,
              7.98
            ],
            [
              "that's",
              7.98,
              8.41
            ],
            [
              "a",
              8.41,
              8.48
            ],
            . . .
          ],
          "confidence": 0.99,
          "transcript": ". . . that %HESITATION that's a . . ."
        }
      ],
      "final": true
    }
  ]
}

A meno che tu non debba utilizzarli per la tua applicazione, puoi tranquillamente filtrare gli indicatori di esitazione da una trascrizione.

Esitazioni per modelli di nuova generazione

Per i modelli di nuova generazione, il servizio include le parole di esitazione effettive in tutti i risultati della trascrizione. I modelli di prossima generazione trattano le esitazioni come parole, quindi le esitazioni possono apparire nei risultati intermedi, risultati finali e altri campi come i risultati per la parola timestamp. I modelli di prossima generazione non producono marcatori di esitazione, e l'abilitazione della formattazione intelligente non provoca esitazioni da eliminare dai risultati finali. Diverse lingue possono identificare diverse parole di esitazione:

  • Per l'inglese americano, le parole di esitazione comuni, come per i modelli di generazione precedenti, sono aah, ah, hm, hmm, huh, huh-uh, hum, ohh, ugh, uh, uh-huh, uh-oh, uh-uh, um e um-hum. Non tutte queste parole di esitazione potrebbero apparire nelle trascrizioni.
  • Per il giapponese, le parole di esitazione di solito sono composte da caratteri a metà larghezza come , アノー, ウーン, エート, , , e ンート. Alcune esitazioni potrebbero essere riconosciute come caratteri a larghezza intera.

Per aumentare la probabilità di vedere delle esitazioni nella risposta, è possibile utilizzare un modello di linguaggio personalizzato. Nel modello personalizzato, aggiungere corpora che includono le esitazioni o creare parole personalizzate i cui suoni - ama catturare il modo in cui gli utenti dicono le disfunzioni. Per ulteriori informazioni sui modelli di linguaggio personalizzati, consultare Creazione di un modello di linguaggio personalizzato.

Il seguente esempio mostra l'esitazione "uhm" in una trascrizione inglese statunitense:

{
  "result_index": 0,
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.99,
          "transcript": ". . . that uhm that's a . . ."
        }
      ],
      "final": true
    }
  ]
}

Maiuscole

Per la maggior parte delle lingue, il servizio non utilizza maiuscole nelle trascrizioni di risposta. Se l'uso delle maiuscole è importante per la tua applicazione, devi scrivere con la prima lettera in maiuscolo la prima parola di ogni periodo e ogni altro termine per cui la maiuscola è appropriata.

Il servizio applica la capitalizzazione automatica solo alle seguenti lingue e modelli. Il servizio applica sempre questo maiuscolo / minuscolo, indipendentemente dal fatto che tu utilizzi la formattazione intelligente.

  • Per gli US English previous-generation models, il servizio capitalizza molti noci. Ad esempio, il servizio restituisce la seguente trascrizione per la frase baracco obama laureato a Columbia university:

    Barack Obama graduated from Columbia University
    

    Il servizio non capitalizza i rumori corretti per gli inglesi statunitensi con modelli di ultima generazione.

  • Per i modelli di ultima generazione tedesca, il servizio capitalizza molti noci. Ad esempio, il servizio restituisce la seguente trascrizione per la frase er braucht erst einen neuen eintrag ins vokabular punkt:

    er braucht erst einen neuen Eintrag ins Vokabular Punkt
    

    Il servizio non capitalizza noci per il tedesco con modelli di prima generazione.

Punteggiatura

Il servizio non inserisce la punteggiatura nelle trascrizioni di risposta per impostazione predefinita. Devi aggiungere la punteggiatura che ti serve nei risultati del servizio.

Per alcune lingue, puoi utilizzare la formattazione intelligente per indicare al servizio di sostituire i simboli di punteggiatura, come virgole, punti, punti interrogativi e punti esclamativi, per determinate stringhe di parole chiave. Per ulteriori informazioni, vedi Formattazione intelligente.