Trascrizione con riconoscimento vocale con l'API Cloud Speech-to-Text

L'API Cloud Speech ti consente di eseguire la sintesi vocale da file audio in oltre 80 lingue.

In questo lab, registreremo un file audio e lo invieremo all'API Cloud Speech per la trascrizione.

Obiettivi didattici

  • Creazione di una richiesta API Speech e chiamata all'API con curl
  • Chiamata all'API Speech con file audio in diverse lingue

Che cosa ti serve

  • Un progetto Google Cloud Platform
  • Un browser, come Chrome o Firefox

Come utilizzerai questo tutorial?

Leggilo solo Leggilo e completa gli esercizi

Come giudichi la tua esperienza con Google Cloud Platform?

Principiante Intermedio Esperto

Configurazione automatica dell'ambiente

Se non hai ancora un Account Google (Gmail o Google Apps), devi crearne uno. Accedi alla console di Google Cloud Platform (console.cloud.google.com) e crea un nuovo progetto.

Screenshot dal 10/02/2016 alle 00:45:26.png

Ricorda l'ID progetto, un nome univoco in tutti i progetti Google Cloud (il nome sopra riportato è già stato utilizzato e non funzionerà per te). Vi verrà fatto riferimento più avanti in questo codelab come PROJECT_ID.

Il prossimo passaggio consiste nell'attivare la fatturazione in Cloud Console per utilizzare le risorse di Google Cloud.

L'esecuzione di questo codelab non dovrebbe costare più di qualche euro, ma potrebbe essere di più se decidi di utilizzare più risorse o se le lasci in esecuzione (vedi la sezione "pulizia" alla fine di questo documento).

I nuovi utenti di Google Cloud Platform sono idonei per una prova senza costi di 300$.

Fai clic sull'icona del menu nella parte in alto a sinistra dello schermo.

Seleziona la dashboard API e servizi nel menu a discesa.

Fai clic su Abilita API e servizi.

Cerca quindi "Speech" nella casella di ricerca. Fai clic sull'API Google Cloud Speech:

Fai clic su Abilita per abilitare l'API Cloud Speech:

Attendi qualche secondo affinché venga attivata. Quando verrà attivato verrà visualizzato il messaggio:

Google Cloud Shell è un ambiente a riga di comando in esecuzione nel cloud. Questa macchina virtuale basata su Debian viene caricata con tutti gli strumenti di sviluppo di cui avrai bisogno (gcloud, bq, git e altri) e offre una home directory permanente da 5 GB. Useremo Cloud Shell per creare la nostra richiesta all'API Speech.

Per iniziare a utilizzare Cloud Shell, fai clic sull'icona "Attiva Google Cloud Shell" Screen Shot 2015-06-08 alle 17.30.32.png nell'angolo in alto a destra della barra dell'intestazione

All'interno di un nuovo frame nella parte inferiore della console si apre una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Attendi finché non viene visualizzato il messaggio utente@progetto:~$

Poiché utilizzeremo curl per inviare una richiesta all'API Speech, dovremo generare una chiave API da trasmettere nel nostro URL di richiesta. Per creare una chiave API, vai alla sezione API e servizi & Credenziali della dashboard del tuo progetto:

Quindi fai clic su Crea credenziali:

Seleziona Chiave API dal menu a discesa:

Successivamente, copia la chiave appena generata e seleziona Chiudi (non limitare la chiave).

Ora che hai una chiave API, salvala in una variabile di ambiente per evitare di dover inserire il valore della chiave API in ogni richiesta. Puoi eseguire questa operazione in Cloud Shell. Assicurati di sostituire <your_api_key> con la chiave che hai appena copiato.

export API_KEY=<YOUR_API_KEY>

Puoi creare la tua richiesta all'API Speech in un file request.json. Per creare e modificare questo file, puoi utilizzare uno dei tuoi editor di riga di comando preferiti (nano, vim, emacs) o l'editor web integrato in Cloud Shell:

Crea il file nella tua directory home per potervi fare riferimento facilmente e aggiungere quanto segue al tuo file request.json :

request.json

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

Il corpo della richiesta ha un oggetto config e un oggetto audio. In config, indichiamo all'API Speech come elaborare la richiesta. Il parametro encoding indica all'API il tipo di codifica audio che stai utilizzando per il file audio che stai inviando all'API. FLAC è il tipo di codifica per i file .raw (per maggiori dettagli, consulta la documentazione per il tipo di codifica). Puoi aggiungere altri parametri all'oggetto config, ma encoding è l'unico richiesto. Se non viene inserito nella richiesta, per impostazione predefinita l'inglese è impostato su languageCode.

Nell'oggetto audio, puoi trasmettere l'API all'URI del nostro file audio in Cloud Storage o all'audio codificato in base64 come stringa. Stai utilizzando URL Cloud Storage. Il passaggio successivo è l'API Speech.

Ora puoi trasmettere il corpo della richiesta, insieme alla variabile di ambiente della chiave API salvata in precedenza, all'API Speech con il seguente comando curl (tutti in un'unica riga di comando):

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

La risposta restituita da questo comando curl dovrebbe essere simile alla seguente:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

Il valore transcript restituirà la trascrizione del testo del file audio dell'API Speech e il valore confidence indica che l'API è sicura di aver trascritto l'audio in modo accurato.

Come avrai notato, abbiamo chiamato il metodo recognize nella nostra richiesta riportata sopra. L'API Speech supporta la trascrizione sincrona e asincrona della conversione della voce in testo. In questo esempio abbiamo inviato un file audio completo, ma puoi anche utilizzare il metodo longrunningrecognize per eseguire la riproduzione in streaming della trascrizione del testo in testo mentre l'utente sta ancora parlando.

Sei disponibile in più lingue? L'API Speech supporta la trascrizione del parlato in più di 100 lingue. Puoi modificare il parametro languageCode in request.json. Qui puoi trovare un elenco delle lingue supportate.

Prova un file audio in francese (ascoltalo qui se vuoi un'anteprima). Modifica nel file request.json come segue:

request.json

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

Dovresti vedere la seguente risposta:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

Questa è una frase di una famosa storia per bambini francese. Se hai file audio in un'altra lingua, puoi provare ad aggiungerli a Cloud Storage e a modificare il parametro languageCode nella richiesta.

Hai imparato a eseguire la trascrizione della voce in testo con l'API Speech. In questo esempio, hai trasmesso all'API l'URI Google Cloud Storage del tuo file audio. In alternativa, puoi trasmettere una stringa codificata in base64 dei tuoi contenuti audio.

Cosa abbiamo trattato

  • Trasmettere all'API Speech un URI di Google Cloud Storage di un file audio
  • Creazione di una richiesta API Speech e chiamata all'API con curl
  • Chiamata all'API Speech con file audio in diverse lingue

Passaggi successivi