AISmarteasy – 시맨틱 커널 포크로 개발하기 5fa – Worker – Audio – Whisper, NAudio
Whisper
오디오를 재생하려면 오디오 파일을 읽어야 한다. AudioFileReader로 오디오 파일을 읽고, 읽은 오디오 파일을 WaveOutEvent로 재생한다.
string audioFilePath = “sample.wav”;
using (var audioFileReader = new AudioFileReader(audioFilePath)) // 볼륨 설정 (0.0 ~ 1.0) using (var waveOut = new WaveOutEvent()) waveOut.Play(); while (waveOut.PlaybackState == PlaybackState.Playing) // 오디오 파일의 총 길이 (시간) } |
녹음 하려면
녹음하고 녹음된 것을 파일로 저장해야 한다. WaveInEvent는 녹음을 하고, WaveFileWriter은 파일로 저장한다.
녹음을 시작하면 설정된 대로 녹음된 데이터가 있을 때 마다, WaveInEvent의 DataAvailable 이벤트가 발생한다.
openai whisper api는 오디오 파일을 25MB까지로 제한하기 때문에, 텍스트로 변환할 오디오 작성 시간에 제약을 둘 필요가 있다.
얼마만큼 녹음하면 25M가 넘는지 테스트 해 봐야 한다. 우선은 최대 1분으로 제약하자.
if (writer.Position > waveIn.WaveFormat.AverageBytesPerSecond * 30) { waveIn.StopRecording(); }