현재 특정 오디오 형식으로 인코딩 된 음성을 전송해야하는 응용 프로그램을 작성 중입니다. I는 실행하려고하면 질문 SpeechSynthesizer.SetOutputToAudioStream 오디오 형식 문제
System.Speech.AudioFormat.SpeechAudioFormatInfo synthFormat =
new System.Speech.AudioFormat.SpeechAudioFormatInfo(System.Speech.AudioFormat.EncodingFormat.Pcm,
8000, 16, 1, 16000, 2, null);
이
는 오디오 PCM 포맷 초당 8,000 샘플, 샘플 당 16 비트, 모노 초당 16,000 평균 바이트 2의 블록 정렬 중임 다음 코드에서는 MemoryStream 인스턴스에 아무 것도 기록되지 않습니다. 그러나 초당 8000 샘플에서 11025로 변경하면 오디오 데이터가 성공적으로 기록됩니다.
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
waveStream = new MemoryStream();
PromptBuilder pbuilder = new PromptBuilder();
PromptStyle pStyle = new PromptStyle();
pStyle.Emphasis = PromptEmphasis.None;
pStyle.Rate = PromptRate.Fast;
pStyle.Volume = PromptVolume.ExtraLoud;
pbuilder.StartStyle(pStyle);
pbuilder.StartParagraph();
pbuilder.StartVoice(VoiceGender.Male, VoiceAge.Teen, 2);
pbuilder.StartSentence();
pbuilder.AppendText("This is some text.");
pbuilder.EndSentence();
pbuilder.EndVoice();
pbuilder.EndParagraph();
pbuilder.EndStyle();
synthesizer.SetOutputToAudioStream(waveStream, synthFormat);
synthesizer.Speak(pbuilder);
synthesizer.SetOutputToNull();
는 초당 11,025 샘플에 성공하지 8000 이유는이 8000의 샘플 레이트를 사용하고 내가 SetOutputToAudioStream에 관한 문서에 유용 아무것도 찾을 수 없습니다 때 기록 된 예외 나 오류가 없습니다 일부 사운드 편집 도구를 사용하여 생성하고 올바른 샘플 속도로 변환 한 wav 파일을 포함하는 해결 방법을 제공하지만 가능한 경우 응용 프로그램 내에서 오디오를 생성하고 싶습니다.
관심의 하나의 특별한 점은 SpeechRecognitionEngine가 성공적으로 오디오 형식과 내 합성 웨이브 파일의 연설을 ... 인식 것을 받아들이는 것이 었습니다
업데이트 : 최근에이 오디오 포맷은 특정 설치 음색 성공하지만 실패 발견 다른 사람들을 위해. 특히 LH Michael과 LH Michelle에서는 실패하고 PromptBuilder에 정의 된 특정 음성 설정에 따라 오류가 달라집니다.
만약 내가 당신을 방해하면, 당신은 오디오 거즈의 전문가라고 생각합니다, 나는 [이 질문이] (http://stackoverflow.com/q/33932390/2651073) 나를 혼란스럽게 했으니 까, 나를 도울 수 있겠 니? 그? – Ahmad