сжимать волновой файл на сервере и распаковывать во флэш-памяти/на стороне клиента

Я использую программу с открытым исходным кодом под названием Festival, которая генерирует текст в речь, а в Ubuntu я вызываю ее метод text2wave, который преобразует текст в волновой файл. Я пытаюсь преобразовать короткие абзацы в файлы волн, но проблема в том, что размер каждого файла волны составляет примерно 1,2 МБ. Волновой файл записывается на частоте 16 кГц, и хотя запись на частоте 8 кГц вдвое уменьшает размер волнового файла (принося в жертву качество звука), волновой файл просто слишком велик. Эти абзацы должны многократно передаваться клиентам, и наш сервер не может поддерживать такую ​​большую пропускную способность.

Кто-нибудь знает, как обойти эту проблему? Можно ли сжать файл на сервере, а распаковать его в моем флеш-скрипте (на стороне клиента) и воспроизвести волну? Какой размер я бы сэкономил? Спасибо за любую помощь.


person Stefan    schedule 08.09.2011    source источник


Ответы (1)


Flash поддерживает формат mp3. Вы можете закодировать волновой файл на стороне сервера с помощью LAME и позволить Flash выполнить декодирование на стороне клиента. Я предполагаю, что вы можете использовать произвольные CGI на своем сервере. Размер, который вы сэкономите таким образом, зависит от ваших настроек кодирования. вам стоит поэкспериментировать.

person cyco130    schedule 08.09.2011
comment
спасибо за предложение, но размер файла уменьшился примерно с 1,2 МБ до 1,1 МБ, что не является значительным улучшением :( - person Stefan; 08.09.2011
comment
Вы уверены, что пробовали разные варианты? Вы можете сжать до 8 кбит/с, что должно быть огромным улучшением. Попробуйте lame -b 8 infile.wav outfile.mp3 и измените вариант -b 8 по вкусу. Чем выше, тем выше качество, но больше размер файла. - person cyco130; 08.09.2011
comment
вы, сэр, гений. уменьшил размер файла до 40kb. звучит немного грубо, но это идеально, я продолжу возиться с настройками. Благодарю вас! - person Stefan; 08.09.2011
comment
Рад слышать! Но настоящие гении это те, кто на самом деле написал LAME :) - person cyco130; 08.09.2011