Didascalia con riconoscimento vocale

In questa guida si apprenderà come creare didascalia con il riconoscimento vocale. La didascalia è il processo di conversione del contenuto audio di una trasmissione televisiva, di un webcast, di un film, di un video, di un evento live o di un'altra produzione in testo e quindi di visualizzare il testo su uno schermo, un monitor o un altro sistema di visualizzazione visivo.

I concetti includono come sincronizzare didascalia con l'audio di input, applicare filtri volgari, ottenere risultati parziali, applicare personalizzazioni e identificare le lingue parlate per scenari multilingue. Questa guida illustra didascalia per il parlato, ma non include l'ID voce o gli effetti sonori, ad esempio le campane.

Ecco alcuni scenari comuni di didascalia:

  • Corsi online e video didattici
  • Eventi sportivi
  • Chiamate vocali e videochiamate

Di seguito sono riportati alcuni aspetti da considerare quando si usa didascalia ing:

  • Informare il pubblico che i didascalia vengono generati da un servizio automatizzato.
  • Allinea al centro didascalia orizzontalmente sullo schermo, in un carattere grande e prominente.
  • Valutare se usare risultati parziali, quando iniziare a visualizzare didascalia e il numero di parole da visualizzare alla volta.
  • Informazioni sui protocolli di didascalia, ad esempio SMPTE-TT.
  • Considerare i formati di output, ad esempio SRT (SubRip Text) e WebVTT (Web Video Text Tracks). Questi possono essere caricati nella maggior parte dei lettori video, adesempioi, aggiungendo automaticamente i didascalia al video.

Suggerimento

Provare Speech Studio e scegliere un clip video di esempio per visualizzare i risultati in tempo reale o offline elaborati didascalia.

Provare Azure AI Video Indexer come dimostrazione di come è possibile ottenere didascalia per i video caricati.

La didascalia può accompagnare il riconoscimento vocale in tempo reale o prerecordato. Indipendentemente dal fatto che vengano visualizzati didascalia in tempo reale o con una registrazione, è possibile usare Speech SDK o l'interfaccia della riga di comando di Voce per riconoscere la voce e ottenere le trascrizioni. È anche possibile usare l'API di trascrizione batch per video preregistrati.

Formato di output della didascalia

Il servizio Voce supporta formati di output come SRT (SubRip Text) e WebVTT (Tracce di testo video Web). Questi possono essere caricati nella maggior parte dei lettori video, adesempioi, aggiungendo automaticamente i didascalia al video.

Suggerimento

Il servizio Voce offre opzioni di filtro per il contenuto volgare. È possibile specificare se mascherare, rimuovere o mostrare contenuto volgare.

Il formato di output dell'intervallo di tempo SRT (SubRip Text) è hh:mm:ss,fff.

1
00:00:00,180 --> 00:00:03,230
Welcome to applied Mathematics course 201.

Il formato di output timepan WebVTT (Web Video Text Tracks) è hh:mm:ss.fff.

WEBVTT

00:00:00.180 --> 00:00:03.230
Welcome to applied Mathematics course 201.
{
  "ResultId": "8e89437b4b9349088a933f8db4ccc263",
  "Duration": "00:00:03.0500000"
}

Input audio al servizio Voce

Per il didascalia in tempo reale, usare un microfono o un flusso di input audio anziché l'input del file. Per esempi di come riconoscere la voce da un microfono, vedere la guida introduttiva Riconoscimento vocale e La documentazione su come riconoscere il riconoscimento vocale . Per altre informazioni sullo streaming, vedere Come usare il flusso di input audio.

Per didascalia di una prerecording, inviare l'input del file al servizio Voce. Per altre informazioni, vedere Come usare l'audio di input compresso.

Sincronizzazione della didascalia e della voce

Si vogliono sincronizzare didascalia con la traccia audio, sia in tempo reale che con una prerecordazione.

Il servizio Voce restituisce l'offset e la durata del riconoscimento vocale.

  • Offset: offset nel flusso audio riconosciuto, espresso come durata. L'offset viene misurato in tick, a partire da 0 (zero), associato al primo byte audio elaborato dall'SDK. Ad esempio, l'offset inizia all'avvio del riconoscimento, perché è quando l'SDK avvia l'elaborazione del flusso audio. Un segno di graduazione rappresenta un centinaio di nanosecondi o un dieci milionesimo di secondo.
  • Durata: durata dell'espressione riconosciuta. La durata nei tick non include il silenzio finale o iniziale.

Per altre informazioni, vedere Ottenere i risultati del riconoscimento vocale.

Ottenere risultati parziali

Considerare quando iniziare a visualizzare didascalia e il numero di parole da visualizzare alla volta. I risultati del riconoscimento vocale sono soggetti a modifiche mentre un'espressione è ancora riconosciuta. I risultati parziali vengono restituiti con ogni Recognizing evento. Durante l'elaborazione di ogni parola, il servizio Voce valuta nuovamente un'espressione nel nuovo contesto e restituisce di nuovo il risultato migliore. Il nuovo risultato non è garantito che corrisponda al risultato precedente. La trascrizione completa e finale di un'espressione viene restituita con l'evento Recognized .

Nota

La punteggiatura dei risultati parziali non è disponibile.

Per didascalia di riconoscimento vocale preregistrato o ovunque la latenza non sia un problema, è possibile attendere la trascrizione completa di ogni espressione prima di visualizzare qualsiasi parola. Dato l'offset finale e la durata di ogni parola in un'espressione, sai quando mostrare le parole successive al ritmo con la colonna sonora.

Il didascalia in tempo reale presenta compromessi rispetto alla latenza rispetto all'accuratezza. È possibile visualizzare il testo di ogni Recognizing evento il prima possibile. Tuttavia, se è possibile accettare una certa latenza, è possibile migliorare l'accuratezza del didascalia visualizzando il testo dell'eventoRecognized. C'è anche un po ' di mezzo, che viene definito "risultati parziali stabili".

È possibile richiedere che il servizio Voce restituisca un minor numero Recognizing di eventi più accurati. Questa operazione viene eseguita impostando la SpeechServiceResponse_StablePartialResultThreshold proprietà su un valore compreso tra 0 e 2147483647. Il valore impostato è il numero di volte in cui una parola deve essere riconosciuta prima che il servizio Voce restituisca un Recognizing evento. Ad esempio, se si imposta il valore della SpeechServiceResponse_StablePartialResultThreshold proprietà su 5, il servizio Voce afferma il riconoscimento di una parola almeno cinque volte prima di restituire i risultati parziali all'utente con un Recognizing evento.

speechConfig.SetProperty(PropertyId.SpeechServiceResponse_StablePartialResultThreshold, 5);
speechConfig->SetProperty(PropertyId::SpeechServiceResponse_StablePartialResultThreshold, 5);
speechConfig.SetProperty(common.SpeechServiceResponseStablePartialResultThreshold, 5)
speechConfig.setProperty(PropertyId.SpeechServiceResponse_StablePartialResultThreshold, 5);
speechConfig.setProperty(sdk.PropertyId.SpeechServiceResponse_StablePartialResultThreshold, 5);
[self.speechConfig setPropertyTo:5 byId:SPXSpeechServiceResponseStablePartialResultThreshold];
self.speechConfig!.setPropertyTo(5, by: SPXPropertyId.speechServiceResponseStablePartialResultThreshold)
speech_config.set_property(property_id = speechsdk.PropertyId.SpeechServiceResponse_StablePartialResultThreshold, value = 5)
spx recognize --file caption.this.mp4 --format any --property SpeechServiceResponse_StablePartialResultThreshold=5 --output vtt file - --output srt file -

La richiesta di risultati parziali più stabili riduce il "sfarfallio" o la modifica del testo, ma può aumentare la latenza quando si attendono risultati con maggiore attendibilità.

Esempio di soglia parziale stabile

Nella sequenza di riconoscimento seguente senza impostare una soglia parziale stabile, "matematica" viene riconosciuta come parola, ma il testo finale è "matematica". A un altro punto, il "corso 2" viene riconosciuto, ma il testo finale è "corso 201".

RECOGNIZING: Text=welcome to
RECOGNIZING: Text=welcome to applied math
RECOGNIZING: Text=welcome to applied mathematics
RECOGNIZING: Text=welcome to applied mathematics course 2
RECOGNIZING: Text=welcome to applied mathematics course 201
RECOGNIZED: Text=Welcome to applied Mathematics course 201.

Nell'esempio precedente, le trascrizioni erano additivi e nessun testo è stato ritirato. Ma in altri casi si potrebbe scoprire che i risultati parziali sono stati imprecisi. In entrambi i casi, i risultati parziali instabili possono essere percepiti come "sfarfallio" quando vengono visualizzati.

Per questo esempio, se la soglia dei risultati parziali stabile è impostata su 5, non vengono modificate o eseguite il backtracking delle parole.

RECOGNIZING: Text=welcome to
RECOGNIZING: Text=welcome to applied
RECOGNIZING: Text=welcome to applied mathematics
RECOGNIZED: Text=Welcome to applied Mathematics course 201.

Identificazione della lingua

Se la lingua nell'audio può cambiare, usare l'identificazione continua della lingua. L'identificazione della lingua viene usata per identificare le lingue parlate nell'audio rispetto a un elenco di lingue supportate. Fornisci fino a 10 lingue candidate, almeno una delle quali è prevista nell'audio. Il servizio Voce restituisce la lingua più probabile nell'audio.

Personalizzazioni per migliorare l'accuratezza

Un elenco di frasi è un elenco di parole o frasi fornite immediatamente prima di avviare il riconoscimento vocale. L'aggiunta di una frase a un elenco di frasi ne aumenta l'importanza, rendendola quindi più probabile che venga riconosciuta.

Esempi di frasi includono:

  • Nomi
  • Località geografiche
  • Omonimi
  • Parole o acronimi univoci per il settore o l'organizzazione

In alcune situazioni il training di un modello personalizzato è probabilmente l'opzione migliore per migliorare l'accuratezza. Ad esempio, se si didascalia lezioni ortodontiche, è possibile eseguire il training di un modello personalizzato con i dati di dominio corrispondenti.

Passaggi successivi