Utilizzo di un modello di linguaggio personalizzato per il riconoscimento vocale

Una volta creato e preparato il tuo modello di lingua personalizzato, puoi utilizzarlo nelle richieste di riconoscimento vocale utilizzando il parametro di interrogazione language_customization_id. Per impostazione predefinita, nessun modello di lingua personalizzato viene utilizzato con una richiesta. Puoi creare più modelli di lingua personalizzati per lo stesso dominio o per domini differenti. Ma è possibile specificare un solo modello di lingua personalizzato alla volta per una richiesta di riconoscimento vocale. È necessario inviare la richiesta con le credenziali per l'istanza del servizio che possiede il modello personalizzato.

Un modello personalizzato può essere utilizzato solo con il modello di base per il quale viene creato. Se il modello personalizzato è basato su un altro modello diverso da quello predefinito, è necessario specificare anche tale modello di base con il parametro di query model. Per ulteriori informazioni, vedi Utilizzo del modello predefinito.

Per informazioni su come dire al servizio quanto peso dare alle parole da un modello personalizzato, vedi Utilizzo del peso di personalizzazione. Per degli esempi che utilizzano una grammatica con un modello di lingua personalizzato, vedi Utilizzo di una grammatica per il riconoscimento vocale.

Esempi di utilizzo di un modello di lingua personalizzato

I seguenti esempi mostrano l'utilizzo di un modello di lingua personalizzato con ogni interfaccia di riconoscimento vocale. In questo caso, il modello personalizzato utilizzato è basato sul modello di nuova generazione en-US_Telephony.

  • Per l'interfaccia WebSocket, utilizza il metodo /v1/recognize. Il modello personalizzato specificato viene utilizzato per tutte le richieste inviate tramite la connessione.

    var access_token = {access_token};
    var wsURI = '{ws_url}/v1/recognize'
      + '?access_token=' + access_token
      + '&model=en-US_Telephony'
      + '&language_customization_id={customization_id}';
    var websocket = new WebSocket(wsURI);
    
  • Per l'interfaccia HTTP sincrona, utilizza il metodo POST /v1/recognize. Il modello personalizzato specificato viene utilizzato per tale richiesta.

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognize?model=en-US_Telephony&language_customization_id={customization_id}"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognize?model=en-US_Telephony&language_customization_id={customization_id}"
    
  • Per l'interfaccia HTTP asincrona, utilizza il metodo POST /v1/recognitions. Il modello personalizzato specificato viene utilizzato per tale richiesta.

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognitions?model=en-US_Telephony&language_customization_id={customization_id}"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file.flac \
    "{url}/v1/recognitions?model=en-US_Telephony&language_customization_id={customization_id}"
    

Utilizzo del peso di personalizzazione

Un modello di lingua personalizzato è una combinazione del modello personalizzato e del modello di base che esso personalizza. Puoi indicare al servizio quanto peso dare alle parole dal modello di lingua personalizzato rispetto alle parole dal modello di base per il riconoscimento vocale. Il peso assegnato a un modello personalizzato viene indicato come suo peso di personalizzazione.

Si specifica il peso relativo per un modello linguistico personalizzato come un doppio tra 0.0 a 1.0:

  • Per i modelli personalizzati basati su modelli vocali di grandi dimensioni, il peso di personalizzazione predefinito è 0.5.
  • Per i modelli personalizzati basati sui modelli di generazione precedente, il peso di personalizzazione predefinito è 0.3.
  • Per i modelli personalizzati basati sulla maggior parte dei modelli di nuova generazione, il peso di personalizzazione predefinito è 0.2.
  • Per i modelli personalizzati basati su modelli di nuova generazione migliorati, il peso di personalizzazione predefinito è 0.1.

Per identificare i modelli che utilizzano una personalizzazione del modello di linguaggio migliorata, cercare una data (migliorata) nella colonna Personalizzazione del modello di lingua della tabella 2 in Supporto di personalizzazione per i modelli di nuova generazione. Assicurati di controllare una data per la versione del servizio che utilizzi, IBM Cloud o IBM Cloud Pak for Data.

Il peso predefinito produce le migliori prestazioni nel caso generale. Consente di riconoscere sia le parole del modello personalizzato che quelle del vocabolario di base.

Tuttavia, nei casi in cui l'audio da trascrivere utilizza frequentemente parole del modello personalizzato, aumentare il peso della personalizzazione può migliorare l'accuratezza dei risultati della trascrizione. Presta attenzione quando imposti il peso di personalizzazione. Sebbene un peso maggiore possa migliorare la precisione delle frasi del dominio del modello personalizzato, può anche influire negativamente sulle prestazioni delle frasi non appartenenti al dominio. (Anche se imposti il peso su 0.0, esiste una piccola probabilità che la trascrizione possa includere delle parole personalizzate a causa dell'implementazione della personalizzazione del modello di lingua).

Specifichi un peso di personalizzazione utilizzando il parametro customization_weight. Puoi specificare il parametro quando addestri un modello di lingua personalizzato o quando lo utilizzi con una richiesta di riconoscimento vocale.

  • Per una richiesta di addestramento, il seguente esempio specifica un peso di personalizzazione di 0.5 con il metodo POST /v1/customizations/{customization_id}/train:

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    "{url}/v1/customizations/{customization_id}/train?customization_weight=0.5"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    "{url}/v1/customizations/{customization_id}/train?customization_weight=0.5"
    

    L'impostazione di un peso di personalizzazione durante l'addestramento salva il peso con il modello di lingua personalizzato. Non devi necessariamente passare il peso con ciascuna richiesta di riconoscimento che utilizza il modello personalizzato.

  • Per una richiesta di riconoscimento, il seguente esempio specifica un peso di personalizzazione di 0.7 con il metodo POST /v1/recognize.

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file1.flac \
    "{url}/v1/recognize?language_customization_id={customization_id}&customization_weight=0.7"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    --header "Content-Type: audio/flac" \
    --data-binary @audio-file1.flac \
    "{url}/v1/recognize?language_customization_id={customization_id}&customization_weight=0.7"
    

    L'impostazione di un peso di personalizzazione durante il riconoscimento vocale sovrascrive un peso che era stato salvato con il modello durante l'addestramento.

Risoluzione dei problemi di utilizzo di modelli di lingua personalizzati

Se applichi un modello di lingua personalizzato per il riconoscimento vocale ma rilevi che il servizio non sembra stia utilizzando le parole contenute nel modello, controlla l'eventuale presenza dei seguenti possibili problemi: