Какими характеристиками должен обладать .wav файл в результате движка TTS, чтобы его можно было слушать качественно?

Я пытаюсь создать высококачественную озвучку с помощью Microsoft Speech API. Какие значения я должен передать в этот конструктор чтобы гарантировать высокое качество звука?

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


person Community    schedule 23.09.2014    source источник


Ответы (1)


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

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

Я надеюсь, что это было полезно

person Alexander    schedule 28.09.2014
comment
Большое спасибо, второй пункт был очень полезен, потому что в этой части у меня меньше знаний и больше сомнений;) - person ; 29.09.2014
comment
Что касается второго пункта, вы должны знать, что частотный диапазон реального записанного звука составляет половину частоты дискретизации... поэтому частота дискретизации 16000 Гц означает, что записываются только звуки от 0 до 8000 Гц. Поскольку человеческий голос теоретически может достигать максимальной частоты 8000 Гц, вот почему я сказал, что вы можете использовать частоту 16000 Гц. Обычно голос намного ниже 8000 Гц, но не пытайтесь опускаться ниже 16 кГц, потому что это небольшое количество сэмплов в секунду для точного воссоздания формы волны при воспроизведении звука... - person Alexander; 29.09.2014