2014-09-23 6 views
0

Я пытаюсь создать высококачественную передачу голоса с использованием Microsoft Speech API. Какие значения я должен передать в this constructor, чтобы гарантировать высокое качество звука?Какие характеристики должны иметь .wav-файл в результате того, что двигатель TTS будет прослушиваться с высоким качеством?

Файл .wav будет использоваться последним для подачи FFmpeg, поэтому звук будет перекодирован последним в более компактную форму. Моя главная цель - держать голос настолько ясным, насколько я могу, но я действительно не знаю, какие ценности гарантируют лучшее качество, воспринимаемое людьми.

ответ

2

Прежде всего, просто чтобы вы знаете, что я не использовал этот Speech API, я дам вам ответ, основанный на моем аудио обрабатывая работу .....

  1. Вы можете выбрать EncodingFormat .Pcm для импульсно-кодовой модуляции
  2. samplesPerSecond - частота дискретизации. Потому что это голос, который вы можете покрыть с точностью до 16000 Гц. Если вы действительно перфекционист, вы можете пойти с 22050, например. Чем выше значение, размер аудиофайла будет больше. Если размер файла не является проблемой, вы даже можете пойти с 32000 или 44100, но не будет заметной разницы ....
  3. bitsPerSample - по возможности с 16, если возможно
  4. 1 или 2, моно или стерео. .... это не повлияет на качество звука
  5. averageBytesPerSecond ..... это будут образцыPerSecond * bytesPerSample (например, 22050 * 2)
  6. blockAlign ..... это будет Bytes Per Пример * numberOfChanels (например, если у вас 16 бит PCM Mono audio, 16 бит - 2 байта, Mono равно 1, поэтому blockAlign равно 2 * 1)
  7. Это последнее, массив байтов не говорит само по себе, я не уверен, для чего он служит, я верьте, что первых 6 аргументов достаточно для генерации звука.

Я надеюсь, что это было полезно Приветствия

+0

спасибо, второй пункт был очень полезным потому является та часть, где я меньше знаний и больше сомнений;) –

+0

Для второй точки, вы должны знать, что частотный диапазон реального записанного звука составляет половину частоты дискретизации .... так что частота дискретизации 16000 Гц означает, что записываются только звуки от 0 до 8000 Гц. Потому что человеческий голос может теоретически достигать 8000 Гц, поэтому я сказал, что вы можете пойти с 16000 Гц. Нормальный, голос намного ниже 8000 Гц, но не пытайтесь идти ниже 16 кГц, потому что это небольшое количество выборок в секунду для точного воссоздания формы волны при воспроизведении звука ... – Alexander