Organizza le trascrizioni in paragrafi con Amazon Transcribe.

Organize transcriptions into paragraphs with Amazon Transcribe.

Amazon Transcribe è un servizio di riconoscimento vocale che genera trascrizioni da file video e audio in molteplici lingue e accenti supportati. Viene fornito con un ricco set di funzionalità, tra cui l’identificazione automatica della lingua, il supporto multi-canale e multi-parlante, vocabolari personalizzati e la redazione della trascrizione.

Amazon Transcribe supporta due modalità di funzionamento: batch e streaming. In modalità batch, viene creato un lavoro di trascrizione per elaborare i file presenti in un bucket Amazon Simple Storage Service (Amazon S3); in modalità streaming, la fonte audio è integrata in tempo reale con Amazon Transcribe tramite chiamate HTTP/2 o Web Sockets.

In questo post, esploreremo come organizzare automaticamente la trascrizione generata in paragrafi durante la modalità batch, migliorando la leggibilità della trascrizione generata.

Output della trascrizione

Amazon Transcribe utilizza la rappresentazione JSON per il suo output. Fornisce il risultato di trascrizione in due diversi formati: formato testo e formato dettagliato.

Il formato testo fornisce la trascrizione in blocco, come un blocco di testo, mentre il formato dettagliato fornisce la trascrizione in forma di elementi trascritti ordinati temporalmente, insieme a metadati aggiuntivi per ogni elemento. Entrambi i formati esistono in parallelo nel file di output.

A seconda delle funzionalità selezionate durante la creazione del lavoro di trascrizione, Amazon Transcribe crea visualizzazioni aggiuntive e arricchite del risultato di trascrizione. Vedere il seguente codice di esempio:

{
    "jobName": "2x-speakers_2x-channels",
    "accountId": "************",
    "results": {
        "transcripts": [
            {
                "transcript": "Ciao, benvenuto."
            }
        ],
        "speaker_labels": [
            {
                "channel_label": "ch_0",
                "speakers": 2,
                "segments": [
                ]
            },
            {
                "channel_label": "ch_1",
                "speakers": 2,
                "segments": [
                ]
            }
        ],
        "channel_labels": {
            "channels": [
            ],
            "number_of_channels": 2
        },
        "items": [
            
        ],
        "segments": [
        ]
    },
    "status": "COMPLETED"
}

Le visualizzazioni sono le seguenti:

  • Trascrizioni – Rappresentate dall’elemento transcripts, contengono solo il formato testo della trascrizione. In scenari multi-parlante e multi-canale, la concatenazione di tutte le trascrizioni viene fornita come blocco singolo.
  • Parlanti – Rappresentati dall’elemento speaker_labels, contengono sia il formato testo che il formato dettagliato della trascrizione raggruppati per parlante. È disponibile solo quando la funzionalità multi-parlanti è abilitata.
  • Canali – Rappresentati dall’elemento channel_labels, contengono sia il formato testo che il formato dettagliato della trascrizione, raggruppati per canale. È disponibile solo quando la funzionalità multi-canale è abilitata.
  • Elementi – Rappresentati dall’elemento items, contengono solo il formato dettagliato della trascrizione. In scenari multi-parlante e multi-canale, gli elementi sono arricchiti con proprietà aggiuntive che indicano il parlante e il canale.
  • Segmenti – Rappresentati dall’elemento segments, contengono sia il formato testo che il formato dettagliato della trascrizione, raggruppati per trascrizione alternativa. È disponibile solo quando la funzionalità di risultati alternativi è abilitata.

Metadati di trascrizione nella visualizzazione degli elementi

Nella visualizzazione degli elementi, gli elementi sono forniti sotto forma di elenco ordinato temporalmente, con ogni elemento che contiene informazioni aggiuntive sui metadati:

{
    "results": {
        "items": [
            {
                "channel_label": "ch_0",
                "start_time": "1.509",
                "speaker_label": "spk_0",
                "end_time": "2.21",
                "alternatives": [
                    {
                        "confidence": "0.999",
                        "content": "Ciao"
                    }
                ],
                "type": "pronuncia"
            },
            {
                "channel_label": "ch_0",
                "speaker_label": "spk_0",
                "alternatives": [
                    {
                        "confidence": "0.0",
                        "content": ","
                    }
                ],
                "type": "punteggiatura"
            },
            {
                "channel_label": "ch_0",
                "start_time": "2.22",
                "speaker_label": "spk_0",
                "end_time": "2.9",
                "alternatives": [
                    {
                        "confidence": "0.999",
                        "content": "benvenuto"
                    }
                ],
                "type": "pronuncia"
            },
            {
                "channel_label": "ch_0",
                "speaker_label": "spk_0",
                "alternatives": [
                    {
                        "confidence": "0.0",
                        "content": "."
                    }
                ],
                "type": "punteggiatura"
            }
        ]
    }
}

Il metadato è il seguente:

  • Tipo – Il valore del tipo indica se l’elemento specifico è una punteggiatura o una pronuncia. Esempi di punteggiature supportate sono la virgola, il punto e interrogativo.
  • Alternative – Un array di oggetti contenenti la trascrizione effettiva, insieme al livello di affidabilità, ordinati per livello di affidabilità. Quando la funzione di risultati alternativi non è abilitata, questa lista ha sempre un solo elemento.
    • Affidabilità – Un’indicazione di quanto Amazon Transcribe sia sicuro della correttezza della trascrizione. Utilizza valori da 0 a 1, con 1 che indica una fiducia del 100%.
    • Contenuto – La parola trascritta.
  • Ora di inizio – Un puntatore temporale del file audio o video che indica l’inizio dell’elemento nel formato ss.SSS.
  • Ora di fine – Un puntatore temporale del file audio o video che indica la fine dell’elemento nel formato ss.SSS.
  • Etichetta del canale – L’identificatore del canale, che è presente nell’elemento solo quando la funzione di identificazione del canale è stata abilitata nella configurazione del lavoro.
  • Etichetta del parlante – L’identificatore del parlante, che è presente nell’elemento solo quando la funzione di partizionamento del parlante è stata abilitata nella configurazione del lavoro.

Identificazione dei paragrafi

L’identificazione dei paragrafi si basa sulle informazioni sui metadati nella visualizzazione degli elementi. In particolare, utilizziamo le informazioni sull’ora di inizio e fine insieme al tipo e al contenuto della trascrizione per identificare le frasi e quindi decidere quali frasi sono i migliori candidati per i punti di ingresso del paragrafo.

Una frase è considerata una lista di elementi di trascrizione che esiste tra gli elementi di punteggiatura che indicano il punto e virgola. Le eccezioni sono l’inizio e la fine della trascrizione, che sono di default i confini della frase. La figura seguente mostra un esempio di questi elementi. L’identificazione delle frasi è semplice con Amazon Transcribe perché la punteggiatura è una funzione out-of-the-box, insieme ai tipi di punteggiatura come virgola, punto e interrogativo. In questo concetto, utilizziamo un punto e virgola come confine di frase.

Non ogni frase dovrebbe essere un punto di paragrafo. Per identificare i paragrafi, introduciamo un nuovo insight a livello di frase chiamato “start delay”, come illustrato nella figura seguente. Utilizziamo uno start delay per definire il ritardo temporale introdotto dal parlante nella pronuncia della frase corrente rispetto alla precedente. Il calcolo dello start delay richiede l’ora di inizio della frase corrente e l’ora di fine della precedente per parlante. Poiché Amazon Transcribe fornisce l’ora di inizio e fine per elemento, il calcolo richiede l’utilizzo del primo e dell’ultimo elemento delle frasi correnti e precedenti, rispettivamente.

Conoscendo gli start delays di ogni frase, possiamo applicare l’analisi statistica e capire la significatività di ogni ritardo rispetto alla popolazione totale di ritardi. Nel nostro contesto, i ritardi significativi sono quelli che superano la durata tipica della popolazione. Il grafico seguente mostra un esempio. Per questo concetto, decidiamo di accettare le frasi con start delay maggiori della media come significative e introdurre un punto di paragrafo all’inizio di ogni tale frase. Oltre alla media, ci sono altre opzioni, come accettare tutti gli start delay maggiori della mediana, o del terzo quartile o del valore del recinto superiore della popolazione.

Aggiungiamo un altro passaggio aggiuntivo al processo di identificazione del paragrafo, considerando il numero di parole contenute in ciascun paragrafo. Quando i paragrafi contengono un numero significativo di parole, eseguiamo un’operazione di suddivisione, aggiungendo così un altro paragrafo al risultato finale.

Nel contesto del conteggio delle parole, definiamo come significativi i conteggi delle parole che superano il valore del recinto superiore. Prendiamo questa decisione deliberatamente, in modo da limitare le operazioni di suddivisione ai paragrafi che si comportano veramente come valori anomali nei nostri risultati. Il grafico seguente mostra un esempio. L’operazione di suddivisione seleziona il nuovo punto di ingresso del paragrafo considerando l’insight di massimo start delay della frase. In questo modo, il nuovo paragrafo viene introdotto nella frase che presenta il massimo start delay all’interno del paragrafo corrente. Le suddivisioni possono essere ripetute finché nessun conteggio delle parole supera il valore limite selezionato, nel nostro caso il valore del recinto superiore. La figura seguente mostra un esempio.

Conclusione

In questo post, abbiamo presentato un concetto per introdurre automaticamente paragrafi nei tuoi trascritti, senza intervento manuale, basato sui metadati che Amazon Transcribe fornisce insieme al trascritto effettivo. Questo concetto non è specifico della lingua o dell’accento, poiché si basa su metadati non linguistici per suggerire i punti di ingresso del paragrafo. Le future varianti possono includere informazioni grammaticali o semantiche per caso linguistico, migliorando ulteriormente la logica di identificazione del paragrafo.

Se hai dei feedback su questo post, invia i tuoi commenti nella sezione commenti. Non vediamo l’ora di sentirti. Dai un’occhiata alle funzionalità di Amazon Transcribe per ulteriori funzionalità che ti aiuteranno a ottenere il massimo valore dai tuoi trascritti.