NAudio

2012-03-21 3 views
0

내가 NAudio을 사용하여 DSP TrueSpeech 1 비트 8 kHz의 모노에 PCM 8 비트 8 kHz에서 모노 파일을 변환하려고, 나는 다음과 같은 오류 얻을 :NAudio

첫 번째 기회를 'NAudio.MmException'유형의 예외가 NAudio.dll에서 발생했습니다. AcmNotPossible 호출 acmStreamOpen

내가 누락 된 중간 단계가있을 수 있음을 이해합니다. 어떠한 통찰력도 인정 될 것입니다.

 WaveFormat outWaveFormat; 
     outWaveFormat = new TrueSpeechWaveFormat(); 
     Debug.Print("Sample Rate: " + outWaveFormat.SampleRate); //displays "8000" 
     Debug.Print("Bit Rate: " + outWaveFormat.BitsPerSample); //displays "1" 

     FileInfo f = new FileInfo(inputFile); 
     String outputFileName = this.txtDest.Text + @"\" + f.Name; 

     using (WaveFileReader reader = new WaveFileReader(inputFile)) 
     { 
      try 
      { 
       using (WaveStream convertedStream = new WaveFormatConversionStream (outWaveFormat, reader)) 
       { 
        WaveFileWriter.CreateWaveFile(outputFileName, convertedStream); 

       } 
      } 
      catch (Exception ex) 
      { 
       Debug.Print(ex.Message); 
      } 
     } 

답변

0

두 가지 이유 이런 일이 될 수 있습니다 :

  1. 당신이 TrueSpeech 인코더가없는 여기에 내가 사용하고있는 코드입니다. 필자는 최신 버전의 Windows가 TrueSpeech를 더 이상 포함하지 않는다고 생각합니다. 실제로는 더 이상 사용되지 않습니다. NAudioDemo 응용 프로그램을 실행하여 컴퓨터에있는 ACM 코덱을 확인할 수 있습니다.

  2. 입력 형식을 대상 형식으로 한 번에 변환 할 수 없습니다. 입력 내용이 PCM인지 확인하십시오. 또한 TrueSpeech 코덱은 8 비트가 아닌 16 비트 입력을 원합니다. 나는 그것이 TrueSpeech 영향을 생각하지 않지만

이 일어날 수있는 세 번째 이유가있다 그것은 WaveFileWriter.CreateWaveFile이 AverageBytesPerSecond 항상 사실이 아니다 BlockAlign의 정확한 배수 있다고 가정합니다.

+0

답변 해 주셔서 감사합니다. DSP Group TrueSpeech 코덱이 사용 가능한 코덱 목록에 나타나지 않습니다. 내가 설치 한 줄 알았지 만, 내가 설치 한 것은 DSP 파일을 읽거나 재생하는 것일 뿐이므로 만들어 내지 않는 것 같은데? 그게 가능하니? 엔코더를 얻을 수있는 아이디어가 있습니까? 나는 몇몇 웹 수색을하고 아무것도를 생각해 내지 않았다. – user1284603