I am a little lost and I am really hoping you can help me out. I am trying to consume the Google Speech API. My goal is to take an audio file, send it to Speech API and have it return the text. This is what I have done so far: • Created a project on Google • Created a service account • Registered an environment variable that points to the json file I downloaded from Google. • Installed NuGet GoogleSpeechAPI into Visual Studio 2015
I really don’t know where to go from here. This is what I tried implementing so far: (modified from borrowed code found on codeproject)
var service = new CloudSpeechAPIService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Ayaz",
});
//FileStream fileStream = File.OpenRead(@"C:\OA\VS_Projects\Speech\good-morning-google.flac");
//MemoryStream memoryStream = new MemoryStream();
//memoryStream.SetLength(fileStream.Length);
//fileStream.Read(memoryStream.GetBuffer(), 0, (int)fileStream.Length);
//byte[] BA_AudioFile = memoryStream.GetBuffer();
string path = @"C:\OA\VS_Projects\Speech\good-morning-google.flac";
byte[] BA_AudioFile = System.IO.File.ReadAllBytes(path);
SyncRecognizeRequest mySyncReq = new SyncRecognizeRequest();
AsyncRecognizeRequest myRequest = new AsyncRecognizeRequest();
RecognitionAudio audio = new RecognitionAudio();
RecognitionConfig rConfig = new RecognitionConfig();
audio.Content = System.Convert.ToBase64String(BA_AudioFile);
rConfig.Encoding = "FLAC"; // LINEAR16 FLAC MULAW AMR AMR_WB
rConfig.LanguageCode = "us-EN";
rConfig.SampleRate = 44100;
myRequest.Audio = audio;
myRequest.Config = rConfig;
mySyncReq.Audio = audio;
mySyncReq.Config = rConfig;
//service.Speech.Asyncrecognize(myRequest);
Operation iOp;
//Operation status;
//Syncrecognize Asyncrecognize
iOp = service.Speech.Asyncrecognize(myRequest).Execute();
while(true)
{
if (iOp.Done == true)
{
break;
}
}