Advertisement
EdGr87

Untitled

Sep 22nd, 2022
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.56 KB | None | 0 0
  1.  private async void AzureActionAsync(object obj)
  2.     {
  3.         var str = obj as string;
  4.  
  5.         if (!string.IsNullOrEmpty(str))
  6.         {
  7.  
  8.  
  9.             switch (str)
  10.             {
  11.                 case "1":
  12.                     const string ext = ".wav";
  13.                     var dlg = new OpenFileDialog
  14.                     {
  15.                         DefaultExt = ".mp3",
  16.                         Filter = "Audio files (.mp3)|*.mp3"
  17.                     };
  18.  
  19.                     var res = dlg.ShowDialog();
  20.  
  21.                     if (res! == true)
  22.                     {
  23.                         var AudioName = Path.GetFileNameWithoutExtension(dlg.SafeFileName);
  24.                         var projectPath = Directory.GetParent(Directory.GetCurrentDirectory())?.Parent?.Parent?.FullName;
  25.                         var FoderName = Path.Combine(projectPath!, "Audios");
  26.                         var filePath = Path.Combine(FoderName, $"{AudioName}{ext}");
  27.  
  28.                         using var mp3 = new Mp3FileReader(dlg.FileName);
  29.                         using var ws = WaveFormatConversionStream.CreatePcmStream(mp3);
  30.                         WaveFileWriter.CreateWaveFile(filePath, ws);
  31.  
  32.                         await ConvertToTextAsync(filePath);
  33.                     }
  34.                     break;
  35.             }
  36.         }
  37.     }
  38.  
  39.     private async Task ConvertToTextAsync(string FilePath)
  40.     {
  41.         // Configure speech service
  42.  
  43.         var config = SpeechConfig.FromSubscription(Config.Constants.AZURE_KEY, Config.Constants.AZURE_REGION);
  44.  
  45.         // Configure speech recognition
  46.  
  47.         var taskCompleteionSource = new TaskCompletionSource<int>();
  48.  
  49.         using var audioConfig = AudioConfig.FromWavFileInput(FilePath);
  50.         using var speechRecognizer = new SpeechRecognizer(config, audioConfig);
  51.         speechRecognizer.Recognizing += SpeechRecognizer_Recognizing;
  52.         speechRecognizer.Recognized += SpeechRecognizer_Recognized;
  53.         speechRecognizer.SessionStarted += SpeechRecognizer_SessionStarted;
  54.         speechRecognizer.SessionStopped += SpeechRecognizer_SessionStopped;
  55.  
  56.         await speechRecognizer.StartContinuousRecognitionAsync().ConfigureAwait(false);
  57.  
  58.         Task.WaitAny(new[] { taskCompleteionSource.Task });
  59.  
  60.         await speechRecognizer.StopContinuousRecognitionAsync().ConfigureAwait(false);
  61.     }
  62.  
  63.     private void SpeechRecognizer_SessionStopped(object? sender, SessionEventArgs e)
  64.     {
  65.  
  66.         var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
  67.         var folder = Path.Combine(path, "Transcribed");
  68.         var filename = Path.Combine(folder, "Hello.docx");
  69.         Directory.CreateDirectory(folder);
  70.  
  71.         var sb = new StringBuilder();
  72.  
  73.         foreach (var item in Words)
  74.         {
  75.             sb.Append(item);
  76.         }
  77.  
  78.         using var document = new WordDocument();
  79.  
  80.         document.EnsureMinimal();
  81.  
  82.         document.LastParagraph.AppendText(sb.ToString());
  83.  
  84.         document.Save(filename);
  85.  
  86.         MessageBox.Show("Created");
  87.     }
  88.  
  89.     private void SpeechRecognizer_SessionStarted(object? sender, SessionEventArgs e)
  90.     {
  91.         Debug.WriteLine("Started");
  92.     }
  93.     private void SpeechRecognizer_Recognized(object? sender, SpeechRecognitionEventArgs e)
  94.     {
  95.         if (e.Result.Reason == ResultReason.RecognizedSpeech)
  96.         {
  97.             foreach (var item in e.Result.Text)
  98.             {
  99.                 Words.Add(item);
  100.             }
  101.         }
  102.     }
  103.  
  104.     private void SpeechRecognizer_Recognizing(object? sender, SpeechRecognitionEventArgs e)
  105.     {
  106.     }
  107. }
  108.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement