Репозитории ALT
S: | 2.5-alt0.4 |
5.1: | 1.96-alt7 |
4.1: | 1.96-alt5.M41.1 |
4.0: | 1.96-alt2.6 |
3.0: | |
+backports: | 1.96-alt0.M30.1 |
Другие репозитории
Upstream: | 1.96-beta |
Группа :: Звук
Пакет: festival
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: wave_save_parts_alaw.diff
Скачать
Скачать
This patch complements wave_save_parts and the alaw support.
It allows one to save raw data in alaw format using the same interface
than the one provided in wave_save_parts.
This patch depends on wave_save_parts.diff and the alaw patches to
provide asterisk support.
No copyright subsists in this patch as it is too trivial.
Author: Sergio Oller <sergioller@gmail.com>
--- a/speech_class/EST_WaveFile.cc
+++ b/speech_class/EST_WaveFile.cc
@@ -477,6 +477,24 @@ EST_read_status EST_WaveFile::load_alaw(
offset, length);
}
+EST_write_status EST_WaveFile::save_alaw_header(FILE *fp,
+ const EST_Wave &wv,
+ EST_sample_type_t stype, int bo)
+{
+ EST_Wave localwv = wv;
+ localwv.resample(8000);
+ return save_header_using(save_wave_alaw_header, fp, localwv, stype, bo);
+}
+
+EST_write_status EST_WaveFile::save_alaw_data(FILE *fp,
+ const EST_Wave &wv,
+ EST_sample_type_t stype, int bo)
+{
+ EST_Wave localwv = wv;
+ localwv.resample(8000);
+ return save_using(save_wave_alaw_data, fp, localwv, stype, bo);
+}
+
EST_write_status EST_WaveFile::save_alaw(FILE *fp,
const EST_Wave &wv,
EST_sample_type_t stype, int bo)
--- a/speech_class/EST_WaveFile.h
+++ b/speech_class/EST_WaveFile.h
@@ -147,6 +147,8 @@ public:
static EST_read_status load_ulaw(LoadWave_TokenStreamArgs);
static EST_write_status save_alaw(SaveWave_TokenStreamArgs);
+ static EST_write_status save_alaw_header(SaveWave_TokenStreamArgs);
+ static EST_write_status save_alaw_data(SaveWave_TokenStreamArgs);
static EST_read_status load_alaw(LoadWave_TokenStreamArgs);
static EST_TNamedEnumI<EST_WaveFileType, Info> map;
--- a/speech_class/EST_wave_io.cc
+++ b/speech_class/EST_wave_io.cc
@@ -1071,17 +1071,44 @@ enum EST_read_status load_wave_alaw(EST_
return format_ok;
}
-enum EST_write_status save_wave_alaw(FILE *fp, const short *data, int offset,
+enum EST_write_status save_wave_alaw_header(FILE *fp,
+ int num_samples, int num_channels,
+ int sample_rate,
+ enum EST_sample_type_t sample_type, int bo)
+{
+ (void) sample_rate;
+ (void) sample_type;
+ (void) fp;
+ (void) num_samples;
+ (void) num_channels;
+ (void) bo;
+ return write_ok;
+}
+
+enum EST_write_status save_wave_alaw_data(FILE *fp, const short *data, int offset,
int num_samples, int num_channels,
int sample_rate,
enum EST_sample_type_t sample_type, int bo)
{
(void)sample_rate;
(void)sample_type;
+ if (data == NULL)
+ return write_ok;
return save_wave_raw(fp,data,offset,num_samples,num_channels,
8000,st_alaw,bo);
+}
+enum EST_write_status save_wave_alaw(FILE *fp, const short *data, int offset,
+ int num_samples, int num_channels,
+ int sample_rate,
+ enum EST_sample_type_t sample_type, int bo)
+{
+ save_wave_alaw_header(fp, num_samples, num_channels,
+ sample_rate, sample_type, bo);
+ return save_wave_alaw_data(fp, data, offset,
+ num_samples, num_channels,
+ sample_rate, sample_type, bo);
}
--- a/speech_class/waveP.h
+++ b/speech_class/waveP.h
@@ -91,6 +91,16 @@ enum EST_write_status save_wave_alaw(FIL
int sample_rate,
enum EST_sample_type_t, int bo);
+enum EST_write_status save_wave_alaw_header(FILE *fp,
+ int num_samples, int num_channels,
+ int sample_rate,
+ enum EST_sample_type_t sample_type, int bo);
+
+enum EST_write_status save_wave_alaw_data(FILE *fp, const short *data, int offset,
+ int num_samples, int num_channels,
+ int sample_rate,
+ enum EST_sample_type_t sample_type, int bo);
+
enum EST_read_status load_wave_nist(EST_TokenStream &ts, short **data, int
*num_samples, int *num_channels, int *word_size, int
*sample_rate, enum EST_sample_type_t *sample_type, int *bo, int