API REST di riconoscimento vocale

Il riconoscimento vocale ha due DIVERSE API REST. Ogni API svolge il proprio scopo speciale e usa set di endpoint diversi.

Le API REST di riconoscimento vocale sono:

API REST riconoscimento vocale v3.0

L'API REST di riconoscimento vocale v3.0 viene usata per la trascrizione batch Riconoscimento vocale personalizzato. Se è necessario comunicare con la trascrizione online tramite REST, usare l'API RESTriconoscimento vocale per audio breve.

Usare l'API REST v3.0 per:

  • Copiare modelli in altre sottoscrizioni nel caso in cui si desideri che i colleghi abbia accesso a un modello compilato o nei casi in cui si vuole distribuire un modello in più aree
  • Trascrivere i dati da un contenitore (trascrizione in blocco) e fornire più URL di file audio
  • Caricare dati da Archiviazione di Azure account tramite l'uso di un URI di firma di accesso condiviso
  • Ottenere i log per ogni endpoint se sono stati richiesti log per tale endpoint
  • Richiedere il manifesto dei modelli creati allo scopo di configurare i contenitori locali

L'API REST v3.0 include funzionalità come:

  • Notifications-Webhooks: tutti i processi in esecuzione del servizio supportano ora le notifiche webhook. L'API REST v3.0 fornisce le chiamate per consentire di registrare i webhook a cui vengono inviate le notifiche
  • Aggiornamento dei modelli dietro gli endpoint
  • Adattamento del modello con più set di dati: adattare un modello usando più combinazioni di set di dati di dati acustici, linguistici e di pronuncia
  • Bring Your Own Storage:usare i propri account di archiviazione per log, file di trascrizione e altri dati

Per esempi sull'uso dell'API REST v3.0 con la trascrizione batch, vedere questo articolo.

Se si usa l'API REST speech-to-text v2.0, vedere come è possibile eseguire la migrazione alla versione 3.0 in questa guida.

Vedere le informazioni di riferimento complete sull'API REST speech-to-text v3.0 qui.

API REST speech-to-text per audio breve

In alternativa a Speech SDK,il servizio Voce consente di convertire il riconoscimento vocale in testo usando un'API REST. L'API REST per l'audio breve è molto limitata e deve essere usata solo nei casi in cui Speech SDK non lo è.

Prima di usare l'API REST Speech-to-text per l'audio breve, tenere presente quanto segue:

  • Le richieste che usano l'API REST per l'audio breve e trasmettono l'audio direttamente possono contenere solo fino a 60 secondi di audio.
  • L'API REST speech-to-text per l'audio breve restituisce solo i risultati finali. I risultati parziali non sono disponibili.

Se l'invio di audio più lungo è un requisito per l'applicazione, è consigliabile usare Speech SDK o l'API REST speech-to-text v3.0.

Suggerimento

Vedere questo articolo per Azure per enti pubblici e Azure Cina endpoint.

Authentication

Ogni richiesta richiede un'intestazione di autorizzazione. Questa tabella illustra quali intestazioni sono supportate per ogni servizio:

Intestazione dell'autorizzazione supportata Riconoscimento vocale Sintesi vocale
Ocp-Apim-Subscription-Key
Autorizzazione: Bearer

Quando viene usata l'intestazione Ocp-Apim-Subscription-Key, è sufficiente fornire la chiave di sottoscrizione. Ad esempio:

'Ocp-Apim-Subscription-Key': 'YOUR_SUBSCRIPTION_KEY'

Quando si usa l'intestazione Authorization: Bearer, è necessario effettuare una richiesta per l'endpoint issueToken. In questa richiesta viene scambiata la chiave di sottoscrizione per un token di accesso che è valido per 10 minuti. Nelle prossime sezioni verrà illustrato come ottenere un token e come usare un token.

Come ottenere un token di accesso

Per ottenere un token di accesso, è necessario effettuare una richiesta all'endpoint issueToken usando la Ocp-Apim-Subscription-Key e la propria chiave di sottoscrizione.

Il issueToken formato dell'endpoint è il seguente:

https://<REGION_IDENTIFIER>.api.cognitive.microsoft.com/sts/v1.0/issueToken

Sostituire <REGION_IDENTIFIER> con l'identificatore corrispondente all'area della sottoscrizione da questa tabella:

Area geografica Region Identificatore area
Americhe Stati Uniti centrali centralus
Americhe Stati Uniti orientali eastus
Americhe Stati Uniti orientali 2 eastus2
Americhe Stati Uniti centro-settentrionali northcentralus
Americhe Stati Uniti centro-meridionali southcentralus
Americhe Stati Uniti centro-occidentali westcentralus
Americhe Stati Uniti occidentali westus
Americhe Stati Uniti occidentali 2 westus2
Americhe Canada centrale canadacentral
Americhe Brasile meridionale brazilsouth
Asia Pacifico Asia orientale eastasia
Asia Pacifico Asia sud-orientale southeastasia
Asia Pacifico Australia orientale australiaeast
Asia Pacifico India centrale centralindia
Asia Pacifico Giappone orientale japaneast
Asia Pacifico Giappone occidentale japanwest
Asia Pacifico Corea centrale koreacentral
Europa Europa settentrionale northeurope
Europa Europa occidentale westeurope
Europa Francia centrale francecentral
Europa Regno Unito meridionale uksouth

Usare questi esempi per creare la richiesta di token di accesso.

Esempio di HTTP

Questo esempio è una semplice richiesta HTTP per ottenere un token. Sostituire YOUR_SUBSCRIPTION_KEY con la chiave di sottoscrizione per il Servizio di riconoscimento vocale. Se la sottoscrizione non si trova nell'area Stati Uniti occidentali, sostituire l'intestazione Host con il nome host della propria area.

POST /sts/v1.0/issueToken HTTP/1.1
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
Host: westus.api.cognitive.microsoft.com
Content-type: application/x-www-form-urlencoded
Content-Length: 0

Il corpo della risposta contiene il token di accesso in formato JWT (JSON Web Token).

Esempio PowerShell

Questo esempio è un semplice script di PowerShell per ottenere un token di accesso. Sostituire YOUR_SUBSCRIPTION_KEY con la chiave di sottoscrizione per il Servizio di riconoscimento vocale. Assicurarsi di usare l'endpoint corretto per l'area che corrisponde alla sottoscrizione. Questo esempio è attualmente impostato sugli Stati Uniti occidentali.

$FetchTokenHeader = @{
  'Content-type'='application/x-www-form-urlencoded';
  'Content-Length'= '0';
  'Ocp-Apim-Subscription-Key' = 'YOUR_SUBSCRIPTION_KEY'
}

$OAuthToken = Invoke-RestMethod -Method POST -Uri https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken
 -Headers $FetchTokenHeader

# show the token received
$OAuthToken

esempio di cURL

cURL è uno strumento da riga di comando disponibile in Linux (e nel sottosistema Windows per Linux). Il comando cURL illustra come ottenere un token di accesso. Sostituire YOUR_SUBSCRIPTION_KEY con la chiave di sottoscrizione per il Servizio di riconoscimento vocale. Assicurarsi di usare l'endpoint corretto per l'area che corrisponde alla sottoscrizione. Questo esempio è attualmente impostato sugli Stati Uniti occidentali.

curl -v -X POST \
 "https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken" \
 -H "Content-type: application/x-www-form-urlencoded" \
 -H "Content-Length: 0" \
 -H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY"

Esempio C#

La classe C# illustra come ottenere un token di accesso. Passare la chiave di sottoscrizione del Servizio di riconoscimento vocale durante la creazione di un'istanza della classe. Se la sottoscrizione non è nell'area Stati Uniti occidentali, modificare il valore di FetchTokenUri in modo che corrisponda all'area della sottoscrizione.

public class Authentication
{
    public static readonly string FetchTokenUri =
        "https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken";
    private string subscriptionKey;
    private string token;

    public Authentication(string subscriptionKey)
    {
        this.subscriptionKey = subscriptionKey;
        this.token = FetchTokenAsync(FetchTokenUri, subscriptionKey).Result;
    }

    public string GetAccessToken()
    {
        return this.token;
    }

    private async Task<string> FetchTokenAsync(string fetchUri, string subscriptionKey)
    {
        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
            UriBuilder uriBuilder = new UriBuilder(fetchUri);

            var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, null);
            Console.WriteLine("Token Uri: {0}", uriBuilder.Uri.AbsoluteUri);
            return await result.Content.ReadAsStringAsync();
        }
    }
}

Esempio Python

# Request module must be installed.
# Run pip install requests if necessary.
import requests

subscription_key = 'REPLACE_WITH_YOUR_KEY'


def get_token(subscription_key):
    fetch_token_url = 'https://westus.api.cognitive.microsoft.com/sts/v1.0/issueToken'
    headers = {
        'Ocp-Apim-Subscription-Key': subscription_key
    }
    response = requests.post(fetch_token_url, headers=headers)
    access_token = str(response.text)
    print(access_token)

Come usare un token di accesso

Il token di accesso deve essere inviato al servizio come intestazione Authorization: Bearer <TOKEN>. Ogni token di accesso è valido per 10 minuti. È possibile ottenere un nuovo token in qualsiasi momento, tuttavia per ridurre al minimo il traffico di rete e la latenza, è consigliabile usare lo stesso token per nove minuti.

Di seguito è riportato un esempio di richiesta HTTP all'API REST di sintesi vocale per l'audio breve:

POST /cognitiveservices/v1 HTTP/1.1
Authorization: Bearer YOUR_ACCESS_TOKEN
Host: westus.stt.speech.microsoft.com
Content-type: application/ssml+xml
Content-Length: 199
Connection: Keep-Alive

// Message body here...

Aree ed endpoint

L'endpoint per l'API REST per l'audio breve ha questo formato:

https://<REGION_IDENTIFIER>.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1

Sostituire <REGION_IDENTIFIER> con l'identificatore corrispondente all'area della sottoscrizione di questa tabella:

Area geografica Region Identificatore area
Americhe Stati Uniti centrali centralus
Americhe Stati Uniti orientali eastus
Americhe Stati Uniti orientali 2 eastus2
Americhe Stati Uniti centro-settentrionali northcentralus
Americhe Stati Uniti centro-meridionali southcentralus
Americhe Stati Uniti centro-occidentali westcentralus
Americhe Stati Uniti occidentali westus
Americhe Stati Uniti occidentali 2 westus2
Americhe Canada centrale canadacentral
Americhe Brasile meridionale brazilsouth
Asia Pacifico Asia orientale eastasia
Asia Pacifico Asia sud-orientale southeastasia
Asia Pacifico Australia orientale australiaeast
Asia Pacifico India centrale centralindia
Asia Pacifico Giappone orientale japaneast
Asia Pacifico Giappone occidentale japanwest
Asia Pacifico Corea centrale koreacentral
Europa Europa settentrionale northeurope
Europa Europa occidentale westeurope
Europa Francia centrale francecentral
Europa Regno Unito meridionale uksouth

Nota

Il parametro di lingua deve essere aggiunto all'URL per evitare di ricevere un errore 4xx HTTP. Ad esempio, la lingua impostata su inglese (Stati Uniti) usando l'endpoint per l'area Stati Uniti occidentali è: https://westus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US.

Parametri di query

Questi parametri possono essere inclusi nella stringa di query della richiesta REST.

Parametro Descrizione Obbligatoria / Facoltativa
language Identifica la lingua parlata che viene riconosciuta. Vedere Lingue supportate. Necessario
format Specifica il formato del risultato. I valori accettati sono simple e detailed. I risultati semplici includono RecognitionStatus, DisplayText, Offset e Duration. Le risposte dettagliate includono quattro diverse rappresentazioni del testo visualizzato. L'impostazione predefinita è simple. Facoltativo
profanity Specifica come gestire il linguaggio volgare nei risultati del riconoscimento. I valori accettati sono , che sostituisce il contenuto volgare con asterischi, , che rimuove tutte le contenuto volgare dal risultato o , che include il contenuto volgare masked removed nel raw risultato. L'impostazione predefinita è masked. Facoltativo
cid Quando si usa il portale Riconoscimento vocale personalizzato per creare modelli personalizzati, è possibile usare i modelli personalizzati tramite il relativo ID endpoint disponibile nella pagina Distribuzione. Usare l'ID endpoint come argomento per il parametro della cid stringa di query. Facoltativo

Intestazioni della richiesta

Questa tabella elenca le intestazioni obbligatorie e facoltative per le richieste di riconoscimento vocale.

Intestazione Descrizione Obbligatoria / Facoltativa
Ocp-Apim-Subscription-Key La chiave di sottoscrizione al Servizio di riconoscimento vocale dell'utente. È necessaria questa intestazione o Authorization.
Authorization Un token di autorizzazione preceduto dalla parola Bearer. Per altre informazioni, vedere Autenticazione. È necessaria questa intestazione o Ocp-Apim-Subscription-Key.
Pronunciation-Assessment Specifica i parametri per la visualizzazione dei punteggi di pronuncia nei risultati del riconoscimento, che valutano la qualità della pronuncia dell'input vocale, con indicatori di accuratezza, fluenza, completezza e così via. Questo parametro è un json con codifica Base64 contenente più parametri dettagliati. Per informazioni su come compilare questa intestazione, vedere Parametri di valutazione della pronuncia. Facoltativo
Content-type Descrive il formato e il codec dei dati audio forniti. I valori accettati sono audio/wav; codecs=audio/pcm; samplerate=16000 e audio/ogg; codecs=opus. Necessario
Transfer-Encoding Specifica che vengono inviati i dati audio in blocchi, anziché un singolo file. Utilizzare questa intestazione solo se vi è stata la suddivisione in blocchi dei dati audio. Facoltativo
Expect Se si usa il trasferimento in blocchi, inviare Expect: 100-continue. Il Servizio di riconoscimento vocale legge la richiesta iniziale e attende ulteriori dati. Obbligatorio in caso di invio di dati audio in blocchi.
Accept Se specificato, deve essere application/json. Il servizio Voce fornisce i risultati in JSON. Alcuni framework di richiesta forniscono un valore predefinito incompatibile. È consigliabile includere sempre Accept . Facoltativo, ma consigliato.

Formati audio

L'audio viene inviato nel corpo della richiesta HTTP POST. Deve essere in uno dei formati elencati in questa tabella:

Formato Codec Velocità in bit Frequenza di campionamento
WAV PCM 256 kbps 16 kHz, mono
OGG OPUS 256 kpbs 16 kHz, mono

Nota

I formati precedenti sono supportati tramite l'API REST per audio brevi e WebSocket nel servizio Voce. Speech SDK attualmente supporta il formato WAV con codec PCM e altri formati.

Parametri di valutazione della pronuncia

Questa tabella elenca i parametri obbligatori e facoltativi per la valutazione della pronuncia.

Parametro Descrizione Necessaria?
ReferenceText Testo con cui verrà valutata la pronuncia. Necessario
GradingSystem Sistema di punti per la calibrazione del punteggio. Il sistema assegna un punteggio a virgola mobile da 0 a 5 e un punteggio FivePoint HundredMark a virgola mobile da 0 a 100. Impostazione predefinita: FivePoint. Facoltativo
Granularità Granularità della valutazione. I valori accettati sono , che mostra il punteggio a livello di testo completo, parola e fonema, , che mostra il punteggio a livello di testo completo e parola, , che mostra il punteggio solo a livello di Phoneme Word FullText full-text. L'impostazione predefinita è Phoneme. Facoltativo
Dimensione Definisce i criteri di output. I valori accettati sono , che mostra solo il punteggio di accuratezza, mostra i punteggi su più dimensioni (ad esempio, punteggio di fluenza e punteggio di completezza a livello Basic di full-text, tipo di errore a livello Comprehensive di parola). Selezionare Parametri di risposta per visualizzare le definizioni delle diverse dimensioni del punteggio e dei tipi di errore delle parole. L'impostazione predefinita è Basic. Facoltativo
EnableMiscue Abilita il calcolo erre. Con questa opzione abilitata, le parole pronunciate verranno confrontate con il testo di riferimento e verranno contrassegnate con omissione/inserimento in base al confronto. I valori accettati sono False e True. L'impostazione predefinita è False. Facoltativo
Id scenario GUID che indica un sistema di punti personalizzato. Facoltativo

Di seguito è riportato un codice JSON di esempio contenente i parametri di valutazione della pronuncia:

{
  "ReferenceText": "Good morning.",
  "GradingSystem": "HundredMark",
  "Granularity": "FullText",
  "Dimension": "Comprehensive"
}

Il codice di esempio seguente illustra come compilare i parametri di valutazione della pronuncia Pronunciation-Assessment nell'intestazione :

var pronAssessmentParamsJson = $"{{\"ReferenceText\":\"Good morning.\",\"GradingSystem\":\"HundredMark\",\"Granularity\":\"FullText\",\"Dimension\":\"Comprehensive\"}}";
var pronAssessmentParamsBytes = Encoding.UTF8.GetBytes(pronAssessmentParamsJson);
var pronAssessmentHeader = Convert.ToBase64String(pronAssessmentParamsBytes);

È consigliabile eseguire il caricamento in streaming (in blocchi) durante la pubblicazione dei dati audio, riducendo in modo significativo la latenza. Per informazioni su come abilitare lo streaming, vedere il codice di esempio in linguaggi di programmazione diversi.

Nota

La funzionalità di valutazione della pronuncia supporta attualmente en-US la lingua, disponibile in tutte le aree di riconoscimento vocale. Il supporto per en-GB le lingue e è in zh-CN anteprima, disponibile nelle aree , westus eastasia e centralindia .

Richiesta di esempio

L'esempio seguente include il nome host e le intestazioni richieste. È importante notare che il servizio prevede anche i dati audio, che non sono inclusi in questo esempio. Come accennato in precedenza, la suddivisione in blocchi è consigliabile, tuttavia, non è necessaria.

POST speech/recognition/conversation/cognitiveservices/v1?language=en-US&format=detailed HTTP/1.1
Accept: application/json;text/xml
Content-Type: audio/wav; codecs=audio/pcm; samplerate=16000
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
Host: westus.stt.speech.microsoft.com
Transfer-Encoding: chunked
Expect: 100-continue

Per abilitare la valutazione della pronuncia, è possibile aggiungere l'intestazione seguente. Per informazioni su come compilare questa intestazione, vedere Parametri di valutazione della pronuncia.

Pronunciation-Assessment: eyJSZWZlcm...

Codici di stato HTTP

Il codice di stato HTTP di ogni risposta indica esito positivo o errori comuni.

Codice di stato HTTP Descrizione Possibile motivo
100 Continua La richiesta iniziale è stata accettata. Procedere con l'invio del resto dei dati. (Usato con il trasferimento in blocchi)
200 OK La richiesta ha avuto esito positivo; il corpo della risposta è un oggetto JSON.
400 Richiesta non valida Codice lingua non fornito, lingua non supportata, file audio non valido e così via.
401 Non autorizzata La chiave di sottoscrizione o il token di autorizzazione non è valido nell'area specificata o l'endpoint non è valido.
403 Accesso negato Manca la chiave di sottoscrizione o il token di autorizzazione.

Trasferimento in blocchi

Il trasferimento in blocchi ( Transfer-Encoding: chunked ) consente di ridurre la latenza di riconoscimento. Consente al servizio Voce di iniziare a elaborare il file audio durante la trasmissione. L'API REST per l'audio breve non fornisce risultati parziali o provvisori.

Questo esempio di codice mostra come inviare audio in blocchi. Solo il primo blocco deve contenere l'intestazione del file audio. request è un HttpWebRequest oggetto connesso all'endpoint REST appropriato. audioFile è il percorso di un file audio su disco.

var request = (HttpWebRequest)HttpWebRequest.Create(requestUri);
request.SendChunked = true;
request.Accept = @"application/json;text/xml";
request.Method = "POST";
request.ProtocolVersion = HttpVersion.Version11;
request.Host = host;
request.ContentType = @"audio/wav; codecs=audio/pcm; samplerate=16000";
request.Headers["Ocp-Apim-Subscription-Key"] = "YOUR_SUBSCRIPTION_KEY";
request.AllowWriteStreamBuffering = false;

using (var fs = new FileStream(audioFile, FileMode.Open, FileAccess.Read))
{
    // Open a request stream and write 1024 byte chunks in the stream one at a time.
    byte[] buffer = null;
    int bytesRead = 0;
    using (var requestStream = request.GetRequestStream())
    {
        // Read 1024 raw bytes from the input audio file.
        buffer = new Byte[checked((uint)Math.Min(1024, (int)fs.Length))];
        while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) != 0)
        {
            requestStream.Write(buffer, 0, bytesRead);
        }

        requestStream.Flush();
    }
}

Parametri di risposta

I risultati vengono forniti in formato JSON. Il formato simple include i campi di primo livello seguenti.

Parametro Descrizione
RecognitionStatus Lo stato, ad esempio Success per il riconoscimento con esito positivo. Vedere la tabella successiva.
DisplayText Il testo riconosciuto dopo l'utilizzo di maiuscole e minuscole, la punteggiatura, la normalizzazione inversa del testo (conversione del testo parlato in forme più brevi, ad esempio 200 per "duecento" o "Dr. Smith" per "doctor smith") e la maschera volgare. Presente solo con esito positivo.
Offset Il tempo (in unità di 100 nanosecondi) in corrispondenza del quale inizia l'input vocale riconosciuto nel flusso audio.
Duration La durata (in unità di 100 nanosecondi) dell'input vocale riconosciuto nel flusso audio.

Il campo RecognitionStatus può contenere questi valori:

Stato Descrizione
Success Il riconoscimento ha avuto esito positivo e il campo DisplayText è presente.
NoMatch La parte parlata è stata rilevata nel flusso audio, ma non sono state trovate corrispondenze per alcuna parola nella lingua di destinazione. In genere significa che la lingua di riconoscimento è una lingua diversa da quella parlata dall'utente.
InitialSilenceTimeout La parte iniziale del flusso audio conteneva solo silenzio e il servizio ha raggiunto il timeout in attesa della parte parlata.
BabbleTimeout La parte iniziale del flusso audio conteneva solo rumore e il servizio ha raggiunto il timeout in attesa della parte parlata.
Error Il servizio di riconoscimento ha rilevato un errore interno e non è in grado di continuare. Provare di nuovo, se possibile.

Nota

Se l'audio è costituito solo da contenuto volgare e il parametro di query profanity è impostato su remove, il servizio non restituisce un risultato di riconoscimento vocale.

Il detailed formato include forme aggiuntive di risultati riconosciuti. Quando si usa il formato detailed, DisplayText viene fornito come Display per ogni risultato nell'elenco NBest.

L'oggetto NBest nell'elenco può includere:

Parametro Descrizione
Confidence Il punteggio di attendibilità della voce da 0.0 (nessuna attendibilità) a 1.0 (attendibilità completa)
Lexical Il formato lessicale del testo riconosciuto: le parole effettive riconosciute.
ITN Il testo riconosciuto dopo la normalizzazione inversa (forma "canonica"), con numeri di telefono, numeri, abbreviazioni ("Dottor Rossi" in "Dr. Rossi") e altre trasformazioni applicate.
MaskedITN La forma ITN con la maschera per le volgarità applicata, se richiesta.
Display Il modulo di visualizzazione del testo riconosciuto, con l'aggiunta di segni di punteggiatura e maiuscole. Questo parametro è uguale a DisplayText fornito quando il formato è impostato su simple.
AccuracyScore Accuratezza della pronuncia del parlato. L'accuratezza indica la precisione con cui i fonemi corrispondono alla pronuncia di un parlante nativo. Il punteggio di accuratezza a livello di parola e full-text viene aggregato dal punteggio di accuratezza del livello di fonema.
FluencyScore Fluency del parlato specificato. Fluency indica in che modo il parlato corrisponde all'uso di interruzioni silenziose tra le parole da parte di un parlante nativo.
CompletenessScore Completezza del parlato, determinata calcolando il rapporto tra parole pronunciate e input di testo di riferimento.
PronScore Punteggio complessivo che indica la qualità della pronuncia del parlato specificato. Viene aggregato da AccuracyScore e FluencyScore con CompletenessScore peso.
ErrorType Questo valore indica se una parola viene omessa, inserita o pronunciata in modo non valido rispetto a ReferenceText . I valori possibili None sono , ovvero nessun errore in questa parola, e Omission Insertion Mispronunciation .

Risposte di esempio

Risposta tipica per il simple riconoscimento:

{
  "RecognitionStatus": "Success",
  "DisplayText": "Remind me to buy 5 pencils.",
  "Offset": "1236645672289",
  "Duration": "1236645672289"
}

Risposta tipica per il detailed riconoscimento:

{
  "RecognitionStatus": "Success",
  "Offset": "1236645672289",
  "Duration": "1236645672289",
  "NBest": [
    {
      "Confidence": 0.9052885,
      "Display": "What's the weather like?",
      "ITN": "what's the weather like",
      "Lexical": "what's the weather like",
      "MaskedITN": "what's the weather like"
    },
    {
      "Confidence": 0.92459863,
      "Display": "what is the weather like",
      "ITN": "what is the weather like",
      "Lexical": "what is the weather like",
      "MaskedITN": "what is the weather like"
    }
  ]
}

Risposta tipica per il riconoscimento con valutazione della pronuncia:

{
  "RecognitionStatus": "Success",
  "Offset": "400000",
  "Duration": "11000000",
  "NBest": [
      {
        "Confidence" : "0.87",
        "Lexical" : "good morning",
        "ITN" : "good morning",
        "MaskedITN" : "good morning",
        "Display" : "Good morning.",
        "PronScore" : 84.4,
        "AccuracyScore" : 100.0,
        "FluencyScore" : 74.0,
        "CompletenessScore" : 100.0,
        "Words": [
            {
              "Word" : "Good",
              "AccuracyScore" : 100.0,
              "ErrorType" : "None",
              "Offset" : 500000,
              "Duration" : 2700000
            },
            {
              "Word" : "morning",
              "AccuracyScore" : 100.0,
              "ErrorType" : "None",
              "Offset" : 5300000,
              "Duration" : 900000
            }
        ]
      }
  ]
}

Passaggi successivi