#include "google/cloud/texttospeech/v1/text_to_speech_client.h" #include <iostream> auto constexpr kText = R"""( Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.)"""; int main(int argc, char* argv[]) try { if (argc != 1) { std::cerr << "Usage: " << argv[0] << "\n"; return 1; } namespace texttospeech = ::google::cloud::texttospeech_v1; auto client = texttospeech::TextToSpeechClient( texttospeech::MakeTextToSpeechConnection()); google::cloud::texttospeech::v1::SynthesisInput input; input.set_text(kText); google::cloud::texttospeech::v1::VoiceSelectionParams voice; voice.set_language_code("en-US"); google::cloud::texttospeech::v1::AudioConfig audio; audio.set_audio_encoding(google::cloud::texttospeech::v1::LINEAR16); auto response = client.SynthesizeSpeech(input, voice, audio); if (!response) throw std::move(response).status(); // Normally one would play the results (response->audio_content()) over some // audio device. For this quickstart, we just print some information. auto constexpr kWavHeaderSize = 48; auto constexpr kBytesPerSample = 2; // we asked for LINEAR16 auto const sample_count = (response->audio_content().size() - kWavHeaderSize) / kBytesPerSample; std::cout << "The audio has " << sample_count << " samples\n"; return 0; } catch (google::cloud::Status const& status) { std::cerr << "google::cloud::Status thrown: " << status << "\n"; return 1; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter