Как сохранить DynamicSoundEffectInstance или SoundEffectInstance в файл или массив? - PullRequest
2 голосов
/ 03 сентября 2011

У меня есть приложение Windows Phone Silverlight. Я делаю это, чтобы замедлить голос и изменить высоту тона микрофонного потока:

sound = new SoundEffect(bStream, microphone.SampleRate, AudioChannels.Mono);
SoundEffectInstance soundInstance = sound.CreateInstance();
soundInstance.Pitch -= 1;
soundInstance.Play();

здесь "bStream" - это байтовый массив. Проблема в том, что я не могу сохранить данные с измененным тоном (хотя я могу их воспроизвести). Есть ли способ сохранить мой байтовый массив после изменения высоты тона? Я пробовал DynamicSoundEffectInstance также с тем же результатом. Когда я сохраняю bStream как файл wav, все эффекты исчезают.

Спасибо за вашу помощь и понимание.

1 Ответ

0 голосов
/ 05 сентября 2011

Вам действительно нужно сохранить его с настроенным шагом?Почему бы просто не сохранить величину регулировки высоты тона в файле и повторно применить ее (как вы уже делаете) после загрузки файла.

Если вам действительно нужно настроить высоту данныхвы по сути будете пересматривать его.Это включает интерполяцию и / или усреднение значений, чтобы растянуть или сжать их во времени.Я считаю, что NAudio содержит код C # для этого: http://naudio.codeplex.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...