1. Panoramica
L'API Google Cloud Speech-to-Text consente agli sviluppatori di convertire l'audio in testo in 120 lingue e varianti applicando efficaci modelli di rete neurale in un'API semplice da usare.
In questo codelab, ti concentrerai sull'utilizzo dell'API Speech-to-Text con C#. Imparerai a inviare un file audio in inglese e in altre lingue all'API Cloud Speech-to-Text per la trascrizione.
Cosa imparerai a fare
- Come utilizzare Cloud Shell
- Come abilitare l'API Speech-to-Text
- Come autenticare le richieste API
- Come installare la libreria client Google Cloud per C#
- Come trascrivere file audio in inglese
- Come trascrivere file audio con timestamp a livello di parola
- Come trascrivere file audio in lingue diverse
Che cosa ti serve
Sondaggio
Come utilizzerai questo tutorial?
Come valuteresti la tua esperienza con C#?
Come valuti la tua esperienza di utilizzo dei servizi Google Cloud Platform?
2. Configurazione e requisiti
Configurazione dell'ambiente autonomo
- Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.



- Il nome del progetto è il nome visualizzato per i partecipanti a questo progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarlo.
- L'ID progetto è univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo l'impostazione). La console Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, dovrai fare riferimento all'ID progetto (in genere identificato come
PROJECT_ID). Se non ti piace l'ID generato, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimane per tutta la durata del progetto. - Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
- Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. Completare questo codelab non costa molto, se non nulla. Per arrestare le risorse ed evitare addebiti oltre a quelli previsti in questo tutorial, puoi eliminare le risorse che hai creato o il progetto. I nuovi utenti di Google Cloud possono usufruire del programma prova senza costi di 300$.
Avvia Cloud Shell
Sebbene Google Cloud possa essere gestito da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.
Attiva Cloud Shell
- Nella console Cloud, fai clic su Attiva Cloud Shell
.

Se è la prima volta che avvii Cloud Shell, viene visualizzata una schermata intermedia che ne descrive le funzionalità. Se è stata visualizzata una schermata intermedia, fai clic su Continua.

Bastano pochi istanti per eseguire il provisioning e connettersi a Cloud Shell.

Questa macchina virtuale è caricata con tutti gli strumenti di sviluppo necessari. Offre una home directory permanente da 5 GB e viene eseguita in Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Gran parte del lavoro per questo codelab, se non tutto, può essere svolto con un browser.
Una volta eseguita la connessione a Cloud Shell, dovresti vedere che il tuo account è autenticato e il progetto è impostato sul tuo ID progetto.
- Esegui questo comando in Cloud Shell per verificare che l'account sia autenticato:
gcloud auth list
Output comando
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Esegui questo comando in Cloud Shell per verificare che il comando gcloud conosca il tuo progetto:
gcloud config list project
Output comando
[core] project = <PROJECT_ID>
In caso contrario, puoi impostarlo con questo comando:
gcloud config set project <PROJECT_ID>
Output comando
Updated property [core/project].
3. Abilita l'API Speech-to-Text
Prima di poter iniziare a utilizzare l'API Speech-to-Text, devi abilitarla. Puoi abilitare l'API utilizzando il seguente comando in Cloud Shell:
gcloud services enable speech.googleapis.com
4. Installa la libreria client dell'API Google Cloud Speech-to-Text per C#
Innanzitutto, crea una semplice applicazione console C# che utilizzerai per eseguire gli esempi dell'API Speech-to-Text:
dotnet new console -n SpeechToTextApiDemo
Dovresti vedere l'applicazione creata e le dipendenze risolte:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
A questo punto, vai alla cartella SpeechToTextApiDemo:
cd SpeechToTextApiDemo/
e aggiungi il pacchetto NuGet Google.Cloud.Speech.V1 al progetto:
dotnet add package Google.Cloud.Speech.V1
info : Adding PackageReference for package 'Google.Cloud.Speech.V1' into project '/home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj'.
log : Restoring packages for /home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Speech.V1' version '1.0.1' added to file '/home/atameldev/SpeechToTextApiDemo/SpeechToTextApiDemo.csproj'.
Ora puoi utilizzare l'API Speech-to-Text.
5. Trascrivere i file audio
In questa sezione, trascriverai un file audio preregistrato in inglese. Il file audio è disponibile su Google Cloud Storage.
Per trascrivere un file audio, apri l'editor di codice dalla parte in alto a destra di Cloud Shell:

Vai al file Program.cs all'interno della cartella SpeechToTextApiDemo e sostituisci il codice con il seguente:
using Google.Cloud.Speech.V1;
using System;
namespace SpeechToTextApiDemo
{
public class Program
{
public static void Main(string[] args)
{
var speech = SpeechClient.Create();
var config = new RecognitionConfig
{
Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
SampleRateHertz = 16000,
LanguageCode = LanguageCodes.English.UnitedStates
};
var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-tests/speech/brooklyn.flac");
var response = speech.Recognize(config, audio);
foreach (var result in response.Results)
{
foreach (var alternative in result.Alternatives)
{
Console.WriteLine(alternative.Transcript);
}
}
}
}
}
Dedica un minuto o due a studiare il codice e a capire come viene utilizzato per trascrivere un file audio.*
Il parametro Encoding indica all'API quale tipo di codifica audio stai utilizzando per il file audio. Flac è il tipo di codifica per i file RAW (per ulteriori dettagli, consulta la documentazione relativa al tipo di codifica).
Nell'oggetto RecognitionAudio, puoi trasmettere all'API l'URI del nostro file audio in Cloud Storage o il percorso del file locale per il file audio. Qui utilizziamo un URI Cloud Storage.
Torna a Cloud Shell ed esegui l'app:
dotnet run
Dovresti vedere l'output seguente:
how old is the Brooklyn Bridge
Riepilogo
In questo passaggio, hai potuto trascrivere un file audio in inglese e stampare il risultato. Scopri di più sulla trascrizione.
6. Trascrivere con i timestamp a livello di parola
Speech-to-Text è in grado di rilevare l'offset temporale (timestamp) dell'audio trascritto. Gli offset temporali mostrano l'inizio e la fine di ogni parola pronunciata nell'audio fornito. Un valore di offset temporale rappresenta il tempo trascorso dall'inizio dell'audio, in incrementi di 100 ms.
Per trascrivere un file audio con offset temporali, vai al file Program.cs all'interno della cartella SpeechToTextApiDemo e sostituisci il codice con il seguente:
using Google.Cloud.Speech.V1;
using System;
namespace SpeechToTextApiDemo
{
public class Program
{
public static void Main(string[] args)
{
var speech = SpeechClient.Create();
var config = new RecognitionConfig
{
Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
SampleRateHertz = 16000,
LanguageCode = LanguageCodes.English.UnitedStates,
EnableWordTimeOffsets = true
};
var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-tests/speech/brooklyn.flac");
var response = speech.Recognize(config, audio);
foreach (var result in response.Results)
{
foreach (var alternative in result.Alternatives)
{
Console.WriteLine($"Transcript: { alternative.Transcript}");
Console.WriteLine("Word details:");
Console.WriteLine($" Word count:{alternative.Words.Count}");
foreach (var item in alternative.Words)
{
Console.WriteLine($" {item.Word}");
Console.WriteLine($" WordStartTime: {item.StartTime}");
Console.WriteLine($" WordEndTime: {item.EndTime}");
}
}
}
}
}
}
Dedica un minuto o due allo studio del codice e scopri come viene utilizzato per trascrivere un file audio con i timestamp delle parole*. Il parametro EnableWordTimeOffsets indica all'API di abilitare gli offset temporali (per ulteriori dettagli, consulta la documentazione).
Torna a Cloud Shell ed esegui l'app:
dotnet run
Dovresti vedere l'output seguente:
dotnet run
Transcript: how old is the Brooklyn Bridge
Word details:
Word count:6
how
WordStartTime: "0s"
WordEndTime: "0.300s"
old
WordStartTime: "0.300s"
WordEndTime: "0.600s"
is
WordStartTime: "0.600s"
WordEndTime: "0.800s"
the
WordStartTime: "0.800s"
WordEndTime: "0.900s"
Brooklyn
WordStartTime: "0.900s"
WordEndTime: "1.100s"
Bridge
WordStartTime: "1.100s"
WordEndTime: "1.500s"
Riepilogo
In questo passaggio, hai trascritto un file audio in inglese con i timestamp delle parole e stampato il risultato. Scopri di più sulla trascrizione con offset delle parole.
7. Trascrivere in lingue diverse
L'API Speech-to-Text supporta la trascrizione in oltre 100 lingue. Puoi trovare un elenco delle lingue supportate qui.
In questa sezione, trascriverai un file audio preregistrato in francese. Il file audio è disponibile su Google Cloud Storage.
Per trascrivere il file audio in francese, vai al file Program.cs all'interno della cartella SpeechToTextApiDemo e sostituisci il codice con il seguente:
using Google.Cloud.Speech.V1;
using System;
namespace SpeechToTextApiDemo
{
public class Program
{
public static void Main(string[] args)
{
var speech = SpeechClient.Create();
var config = new RecognitionConfig
{
Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
LanguageCode = LanguageCodes.French.France
};
var audio = RecognitionAudio.FromStorageUri("gs://cloud-samples-data/speech/corbeau_renard.flac");
var response = speech.Recognize(config, audio);
foreach (var result in response.Results)
{
foreach (var alternative in result.Alternatives)
{
Console.WriteLine(alternative.Transcript);
}
}
}
}
}
Dedicati un minuto o due a studiare il codice e a capire come viene utilizzato per trascrivere un file audio.* Il parametro LanguageCode indica all'API in quale lingua è la registrazione audio.
Torna a Cloud Shell ed esegui l'app:
dotnet run
Dovresti vedere l'output seguente:
maître corbeau sur un arbre perché tenait en son bec un fromage
Questa è una frase tratta da un famoso racconto per bambini francese.
Riepilogo
In questo passaggio, hai potuto trascrivere un file audio in francese e stampare il risultato. Scopri di più sulle lingue supportate.
8. Complimenti!
Hai imparato a utilizzare l'API Speech-to-Text utilizzando C# per eseguire diversi tipi di trascrizione su file audio.
Esegui la pulizia
Per evitare che al tuo account Google Cloud Platform vengano addebitate le risorse utilizzate in questa guida rapida, procedi come segue.
- Vai alla console Cloud Platform.
- Seleziona il progetto che vuoi chiudere, quindi fai clic su "Elimina" in alto: il progetto verrà pianificato per l'eliminazione.
Scopri di più
- API Google Cloud Speech-to-Text: https://cloud.google.com/speech-to-text/docs
- C#/.NET su Google Cloud: https://cloud.google.com/dotnet/
- Client .NET di Google Cloud: https://googlecloudplatform.github.io/google-cloud-dotnet/
Licenza
Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.