1. Übersicht
Mit der Google Cloud Speech-to-Text API können Entwickler Audio in Text umwandeln. Dabei kommen leistungsstarke Modelle neuronaler Netze in einer nutzerfreundlichen API zum Einsatz. Die API unterstützt 120 Sprachen und Sprachvarianten.
In diesem Codelab konzentrieren Sie sich auf die Verwendung der Speech-to-Text API mit C#. Sie erfahren, wie Sie eine Audiodatei in Englisch und anderen Sprachen zur Transkription an die Cloud Speech-to-Text API senden.
Lerninhalte
- Cloud Shell verwenden
- Speech-to-Text API aktivieren
- API-Anfragen authentifizieren
- Google Cloud-Clientbibliothek für C# installieren
- Audiodateien auf Englisch transkribieren
- Audiodateien mit Wortzeitstempeln transkribieren
- Audiodateien in verschiedenen Sprachen transkribieren
Voraussetzungen
Umfrage
Wie werden Sie diese Anleitung verwenden?
Wie würden Sie Ihre Erfahrung mit C# bewerten?
Wie würden Sie Ihre Erfahrungen mit der Verwendung von Google Cloud Platform-Diensten bewerten?
2. Einrichtung und Anforderungen
Umgebung zum selbstbestimmten Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können sie jederzeit aktualisieren.
- Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich (kann nach dem Festlegen nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als
PROJECT_IDangegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen Namen versuchen und sehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs zu verwenden. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um Kosten zu vermeiden, die über diese Anleitung hinausgehen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testzeitraum mit einem Guthaben von 300$ teilnehmen.
Cloud Shell starten
Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Cloud Shell aktivieren
- Klicken Sie in der Cloud Console auf Cloud Shell aktivieren
.

Wenn Sie die Cloud Shell zum ersten Mal starten, wird ein Fenster mit einer Beschreibung eingeblendet. Klicken Sie in diesem Fall einfach auf Weiter.

Das Herstellen der Verbindung mit der Cloud Shell sollte nur wenige Augenblicke dauern.

Auf dieser virtuellen Maschine sind alle erforderlichen Entwicklungstools installiert. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Die meisten, wenn nicht sogar alle Aufgaben in diesem Codelab können mit einem Browser erledigt werden.
Sobald die Verbindung mit der Cloud Shell hergestellt ist, sehen Sie, dass Sie authentifiziert sind und für das Projekt Ihre Projekt-ID eingestellt ist.
- Führen Sie in der Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list
Befehlsausgabe
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Führen Sie den folgenden Befehl in Cloud Shell aus, um zu bestätigen, dass der gcloud-Befehl Ihr Projekt kennt:
gcloud config list project
Befehlsausgabe
[core] project = <PROJECT_ID>
Ist dies nicht der Fall, können Sie die Einstellung mit diesem Befehl vornehmen:
gcloud config set project <PROJECT_ID>
Befehlsausgabe
Updated property [core/project].
3. Speech-to-Text API aktivieren
Bevor Sie die Speech-to-Text API verwenden können, müssen Sie sie aktivieren. Sie können die API mit dem folgenden Befehl in Cloud Shell aktivieren:
gcloud services enable speech.googleapis.com
4. Google Cloud Speech-to-Text API-Clientbibliothek für C# installieren
Erstellen Sie zuerst eine einfache C#-Konsolenanwendung, mit der Sie Speech-to-Text API-Beispiele ausführen:
dotnet new console -n SpeechToTextApiDemo
Die Anwendung sollte erstellt und die Abhängigkeiten aufgelöst worden sein:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
Rufen Sie als Nächstes den Ordner SpeechToTextApiDemo auf:
cd SpeechToTextApiDemo/
Fügen Sie dem Projekt das NuGet-Paket Google.Cloud.Speech.V1 hinzu:
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'.
Jetzt können Sie die Speech-to-Text API verwenden.
5. Audiodateien transkribieren
In diesem Abschnitt transkribieren Sie eine vorab aufgezeichnete Audiodatei auf Englisch. Die Audiodatei ist in Google Cloud Storage verfügbar.
So transkribieren Sie eine Audiodatei: Öffnen Sie den Code-Editor rechts oben in Cloud Shell:

Rufen Sie die Datei Program.cs im Ordner SpeechToTextApiDemo auf und ersetzen Sie den Code durch Folgendes:
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);
}
}
}
}
}
Nehmen Sie sich ein bis zwei Minuten Zeit, um sich den Code anzusehen und zu sehen, wie er zum Transkribieren einer Audiodatei verwendet wird.
Beim Senden der Datei an die API gibt der Parameter Encoding Aufschluss darüber, welchen Audiocodierungstyp Sie für die Audiodatei verwenden. Flac ist der Codierungstyp für RAW-Dateien (siehe Dokumentation für den Codierungstyp).
Im RecognitionAudio-Objekt können Sie der API entweder den URI der Audiodatei in Cloud Storage oder den lokalen Dateipfad für die Audiodatei übergeben. Hier verwenden wir einen Cloud Storage-URI.
Führen Sie die App in Cloud Shell aus:
dotnet run
Es sollte folgende Ausgabe angezeigt werden:
how old is the Brooklyn Bridge
Zusammenfassung
In diesem Schritt haben Sie eine Audiodatei auf Englisch transkribiert und das Ergebnis ausgegeben. Weitere Informationen zur Transkription
6. Mit Zeitstempeln auf Wortebene transkribieren
Speech-to-Text kann Zeitverschiebungswerte (Zeitstempel) für die transkribierten Audiodaten erkennen. Zeitverschiebungswerte geben den Anfang und das Ende jedes gesprochenen Wortes in den bereitgestellten Audiodaten an. Ein Zeitverschiebungswert gibt die Zeit in Schritten von 100 ms an, die seit Beginn des Audiosignals vergangen ist.
Wenn Sie eine Audiodatei mit Zeitversatz transkribieren möchten, rufen Sie die Datei Program.cs im Ordner SpeechToTextApiDemo auf und ersetzen Sie den Code durch Folgendes:
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}");
}
}
}
}
}
}
Nehmen Sie sich ein oder zwei Minuten Zeit, um sich den Code anzusehen und zu sehen, wie er verwendet wird, um eine Audiodatei mit Wort-Zeitstempeln* zu transkribieren. Mit dem Parameter EnableWordTimeOffsets wird die API angewiesen, Zeitversätze zu aktivieren. Weitere Informationen finden Sie in der Dokumentation.
Führen Sie die App in Cloud Shell aus:
dotnet run
Es sollte folgende Ausgabe angezeigt werden:
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"
Zusammenfassung
In diesem Schritt haben Sie eine Audiodatei auf Englisch mit Wort-Zeitstempeln transkribiert und das Ergebnis ausgegeben. Weitere Informationen zum Transkribieren mit Wort-Offsets
7. Verschiedene Sprachen transkribieren
Die Speech-to-Text API unterstützt die Transkription in über 100 Sprachen. Eine Liste der unterstützten Sprachen finden Sie hier.
In diesem Abschnitt transkribieren Sie eine vorab aufgenommene Audiodatei auf Französisch. Die Audiodatei ist in Google Cloud Storage verfügbar.
Wenn Sie die französische Audiodatei transkribieren möchten, rufen Sie die Datei Program.cs im Ordner SpeechToTextApiDemo auf und ersetzen Sie den Code durch Folgendes:
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);
}
}
}
}
}
Nehmen Sie sich ein bis zwei Minuten Zeit, um sich den Code anzusehen und zu sehen, wie er zum Transkribieren einer Audiodatei verwendet wird.* Der Parameter LanguageCode gibt der API an, in welcher Sprache die Audioaufnahme vorliegt.
Führen Sie die App in Cloud Shell aus:
dotnet run
Es sollte folgende Ausgabe angezeigt werden:
maître corbeau sur un arbre perché tenait en son bec un fromage
Das ist ein Satz aus einer beliebten französischen Fabel.
Zusammenfassung
In diesem Schritt haben Sie eine Audiodatei auf Französisch transkribiert und das Ergebnis ausgedruckt. Weitere Informationen zu unterstützten Sprachen
8. Glückwunsch!
Sie haben gelernt, wie Sie die Speech-to-Text API mit C# verwenden, um verschiedene Arten von Transkriptionen für Audiodateien durchzuführen.
Bereinigen
So vermeiden Sie, dass Ihr Google Cloud Platform-Konto für die in diesem Schnellstart verwendeten Ressourcen belastet wird:
- Rufen Sie die Cloud Platform Console auf.
- Wählen Sie das Projekt aus, das Sie beenden möchten, und klicken Sie oben auf „Löschen“. Das Projekt wird dann zum Löschen geplant.
Weitere Informationen
- Google Cloud Speech-to-Text API: https://cloud.google.com/speech-to-text/docs
- C#/.NET auf der Google Cloud Platform: https://cloud.google.com/dotnet/
- Google Cloud .NET-Client: https://googlecloudplatform.github.io/google-cloud-dotnet/
Lizenz
Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.