Stay organized with collections Save and categorize content based on your preferences.


Google.Cloud.TextToSpeech.V1 is a.NET client library for the Google Cloud Text-to-Speech API.

Note: This documentation is for version 3.0.0 of the library. Some samples may not work with other versions.


Install the Google.Cloud.TextToSpeech.V1 package from NuGet. Add it to your project in the normal way (for example by right-clicking on the project in Visual Studio and choosing "Manage NuGet Packages...").


When running on Google Cloud Platform, no action needs to be taken to authenticate.

Otherwise, the simplest way of authenticating your API calls is to download a service account JSON file then set the GOOGLE_APPLICATION_CREDENTIALS environment variable to refer to it. The credentials will automatically be used to authenticate. See the Getting Started With Authentication guide for more details.

Getting started

All operations are performed through TextToSpeechClient.

Create a client instance by calling the static Create or CreateAsync methods. Alternatively, use the builder class associated with each client class (e.g. TextToSpeechClientBuilder for TextToSpeechClient) as an easy way of specifying custom credentials, settings, or a custom endpoint. Clients are thread-safe, and we recommend using a single instance across your entire application unless you have a particular need to configure multiple client objects separately.

Sample code

TextToSpeechClient client = TextToSpeechClient.Create();
// The input can be provided as text or SSML.
SynthesisInput input = new SynthesisInput
    Text = "This is a demonstration of the Google Cloud Text-to-Speech API"
// You can specify a particular voice, or ask the server to pick based
// on specified criteria.
VoiceSelectionParams voiceSelection = new VoiceSelectionParams
    LanguageCode = "en-US",
    SsmlGender = SsmlVoiceGender.Female
// The audio configuration determines the output format and speaking rate.
AudioConfig audioConfig = new AudioConfig
    AudioEncoding = AudioEncoding.Mp3
SynthesizeSpeechResponse response = client.SynthesizeSpeech(input, voiceSelection, audioConfig);
using (Stream output = File.Create("sample.mp3"))
    // response.AudioContent is a ByteString. This can easily be converted into
    // a byte array or written to a stream.