public RecordingText(InterpretationResult interpretation, AudioBinary audioBinary)
 {
     if (interpretation == null)
     {
         throw new InvalidOperationException("Inerpretation must contain data!");
     }
     Text = interpretation.ResultText;
     InterpreterName = interpretation.InterpreterName;
     AudioBinary = audioBinary;
 }
 public static RecordingText TranslateSpeechToText(AudioBinary audioBinary, SpeechToTextGoogleAPI interpreter)
 {
     if (audioBinary == null || interpreter == null)
     {
         throw new InvalidOperationException("AudioBinary and Interpreter cannot be null.");
     }
     InterpretationResult result = null;
     switch (interpreter.AudioRequirement)
     {
         case AudioType.Flac:
             Tuple<int, string> sampleRateAndTargetFlac = ConvertFileToFlac(audioBinary);
             interpreter.SpeechRequest(sampleRateAndTargetFlac.Item1, sampleRateAndTargetFlac.Item2);
             result = new InterpretationResult(interpreter);
             File.Delete(sampleRateAndTargetFlac.Item2);
             break;
         default:
             throw new NotImplementedException("This audio type is not yet implemented");
     }
     return new RecordingText(result, audioBinary);
 }
        public static RecordingText TranslateSpeechToText(AudioBinary audioBinary, SpeechToTextGoogleAPI interpreter)
        {
            if (audioBinary == null || interpreter == null)
            {
                throw new InvalidOperationException("AudioBinary and Interpreter cannot be null.");
            }
            InterpretationResult result = null;

            switch (interpreter.AudioRequirement)
            {
            case AudioType.Flac:
                Tuple <int, string> sampleRateAndTargetFlac = ConvertFileToFlac(audioBinary);
                interpreter.SpeechRequest(sampleRateAndTargetFlac.Item1, sampleRateAndTargetFlac.Item2);
                result = new InterpretationResult(interpreter);
                File.Delete(sampleRateAndTargetFlac.Item2);
                break;

            default:
                throw new NotImplementedException("This audio type is not yet implemented");
            }
            return(new RecordingText(result, audioBinary));
        }