Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:16.0:Staging:adi:36
festival
festival-null-fragile.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File festival-null-fragile.patch of Package festival
diff -Naru festival_orig/src/arch/festival/wave.cc festival/src/arch/festival/wave.cc --- festival_orig/src/arch/festival/wave.cc 2017-09-05 00:54:08.000000000 +0900 +++ festival/src/arch/festival/wave.cc 2020-06-19 16:25:48.142264235 +0900 @@ -421,7 +421,8 @@ EST_Item *s; EST_Track f0; float p = 0.0; - float length = u->relation("Segment")->rlast()->f("end"); + EST_Val undef; + float length = ((u->relation("Segment")->rlast() != NULL) ? u->relation("Segment")->rlast()->f("end") : undef); int i,frames = (int)(length / 0.010); f0.resize(frames,4); diff -Naru festival_orig/src/modules/Intonation/duffint.cc festival/src/modules/Intonation/duffint.cc --- festival_orig/src/modules/Intonation/duffint.cc 2017-09-05 00:54:08.000000000 +0900 +++ festival/src/modules/Intonation/duffint.cc 2020-06-19 16:41:26.710269735 +0900 @@ -83,6 +83,7 @@ LISP params; float start,end; int n_frames; + EST_Val undef; *cdebug << "Intonation duff module\n"; @@ -91,7 +92,7 @@ start = get_param_float("start",params,130.0); end = get_param_float("end",params,110.0); - pm = track(u->relation(get_c_string(relname))->head()->f("coefs")); + pm = track((u->relation(get_c_string(relname))->head() != NULL) ? u->relation(get_c_string(relname))->head()->f("coefs") : undef); float pp = 1.0/start; // float end_time = ((float)pm->num_frames()) * pp; diff -Naru festival_orig/src/modules/Intonation/int_aux.cc festival/src/modules/Intonation/int_aux.cc --- festival_orig/src/modules/Intonation/int_aux.cc 2017-09-05 00:54:08.000000000 +0900 +++ festival/src/modules/Intonation/int_aux.cc 2020-06-19 17:04:28.152883387 +0900 @@ -95,7 +95,7 @@ EST_Item *s; int i; - f0.resize(int(ceil(last_leaf(targ.first())->F("pos",0) / shift)), 1); + f0.resize(int(ceil( ((targ.first() != NULL) ? last_leaf(targ.first())->F("pos",0) : 0) / shift)), 1); f0.fill_time(shift); s = first_leaf(targ.first()); @@ -108,8 +108,8 @@ f0.a(i) = 0.0; } - prev_pos = s->F("pos",0); - prev_f0 = s->F("f0",0); + prev_pos = ((s != NULL) ? s->F("pos",0) : 0); + prev_f0 = ((s != NULL) ? s->F("f0",0) : 0); s = next_leaf(s); diff -Naru festival_orig/src/modules/UniSyn/UniSyn.cc festival/src/modules/UniSyn/UniSyn.cc --- festival_orig/src/modules/UniSyn/UniSyn.cc 2017-09-05 00:54:08.000000000 +0900 +++ festival/src/modules/UniSyn/UniSyn.cc 2020-06-19 16:44:48.575201760 +0900 @@ -161,11 +161,13 @@ if (seg.load(seg_file) != format_ok) return NIL; - if (!ph_is_silence(seg.tail()->f("name"))) - { + if (seg.tail() != NULL) { + if (!ph_is_silence(seg.tail()->f("name"))) + { EST_Item *n = seg.tail()->insert_after(); n->set("name", ph_silence()); n->set("end", iprev(seg.tail())->F("end") + 0.1); + } } us_get_copy_wave(*utt, *sig, *pm, seg); @@ -182,13 +184,14 @@ EST_Relation *f0_rel=0, *pm_rel=0; EST_Track *f0=0, *pm=0; EST_Item *a; + EST_Val undef; float end_time = (l_end_time == NIL) ? -1 : get_c_float(l_end_time); f0_rel = utt->relation(get_c_string(l_f0_name), 1); pm_rel = utt->create_relation(get_c_string(l_pm_name)); - f0 = track(f0_rel->head()->f("f0")); + f0 = track((f0_rel->head() != NULL) ? f0_rel->head()->f("f0") : undef); pm = new EST_Track; a = pm_rel->append(); @@ -198,7 +201,7 @@ if (utt->relation_present("SourceCoef")) { EST_Track *source_coef = - track(utt->relation("SourceCoef")->head()->f("coefs")); + track((utt->relation("SourceCoef")->head() != NULL) ? utt->relation("SourceCoef")->head()->f("coefs") : undef); num_channels = source_coef->num_channels(); } @@ -214,11 +217,12 @@ EST_Track *source_pm = 0; EST_Track *target_pm = 0; EST_IVector *map = 0; + EST_Val undef; target_pm = - track(utt->relation(get_c_string(ltarget_name))->head()->f("coefs")); + track((utt->relation(get_c_string(ltarget_name))->head() != NULL) ? utt->relation(get_c_string(ltarget_name))->head()->f("coefs") : undef); source_pm = - track(utt->relation(get_c_string(lsource_name))->head()->f("coefs")); - map = ivector(utt->relation("US_map")->head()->f("map")); + track((utt->relation(get_c_string(lsource_name))->head() != NULL) ? utt->relation(get_c_string(lsource_name))->head()->f("coefs") : undef); + map = ivector((utt->relation("US_map")->head() != NULL) ? utt->relation("US_map")->head()->f("map") : undef); utt->create_relation(get_c_string(lrel_name)); diff -Naru festival_orig/src/modules/UniSyn/ps_synthesis.cc festival/src/modules/UniSyn/ps_synthesis.cc --- festival_orig/src/modules/UniSyn/ps_synthesis.cc 2017-09-05 00:54:08.000000000 +0900 +++ festival/src/modules/UniSyn/ps_synthesis.cc 2020-06-19 16:54:37.105919050 +0900 @@ -55,18 +55,19 @@ EST_Track *source_coef, *target_coef; EST_Wave *sig, *res; EST_FVector gain; + EST_Val undef; - frames = wavevector(utt.relation("SourceCoef", 1)->head()->f("frame")); + frames = wavevector((utt.relation("SourceCoef", 1)->head() != NULL) ? utt.relation("SourceCoef", 1)->head()->f("frame") : undef); - source_coef = track(utt.relation("SourceCoef", 1)->head()->f("coefs")); - target_coef = track(utt.relation("TargetCoef", 1)->head()->f("coefs")); + source_coef = track((utt.relation("SourceCoef", 1)->head() != NULL) ? utt.relation("SourceCoef", 1)->head()->f("coefs") : undef); + target_coef = track((utt.relation("TargetCoef", 1)->head() != NULL) ? utt.relation("TargetCoef", 1)->head()->f("coefs") : undef); - map = ivector(utt.relation("US_map", 1)->head()->f("map")); + map = ivector((utt.relation("US_map", 1)->head() != NULL) ? utt.relation("US_map", 1)->head()->f("map") : undef); sig = new EST_Wave; if ( ola_method == "asymmetric_window" ){ - frame_pm_indices = ivector(utt.relation("SourceCoef", 1)->head()->f("pm_indices")); + frame_pm_indices = ivector((utt.relation("SourceCoef", 1)->head() != NULL) ? utt.relation("SourceCoef", 1)->head()->f("pm_indices") : undef); asymmetric_window_td_synthesis( *frames, *target_coef, *sig, *map, *frame_pm_indices ); } else if ( ola_method == "synth_period" ) @@ -80,7 +81,8 @@ // Save residual for external prcessing res = new EST_Wave; res->copy(*sig); - utt.relation("TargetCoef", 1)->head()->set_val("residual",est_val(res)); + if (utt.relation("TargetCoef", 1)->head() != NULL) + utt.relation("TargetCoef", 1)->head()->set_val("residual",est_val(res)); // fast version lpc_filter_fast(*target_coef, *sig, *sig); // slower version (but cleaner) diff -Naru festival_orig/src/modules/UniSyn/us_mapping.cc festival/src/modules/UniSyn/us_mapping.cc --- festival_orig/src/modules/UniSyn/us_mapping.cc 2017-09-05 00:54:08.000000000 +0900 +++ festival/src/modules/UniSyn/us_mapping.cc 2020-06-19 16:57:05.190611832 +0900 @@ -114,12 +114,12 @@ s_i_start = t_i_start = 0; if (target_pm.t(target_pm.num_frames() - 1) < - source_lab.tail()->F("end",0)) + ((source_lab.tail() != NULL) ? source_lab.tail()->F("end",0) : 0)) { EST_warning("Target pitchmarks end before end of target segment " "timings (%f vs %f). Expect a truncated utterance\n", target_pm.t(target_pm.num_frames() - 1), - source_lab.tail()->F("end",0.0)); + ((source_lab.tail() != NULL) ? source_lab.tail()->F("end",0.0) : 0.0)); } @@ -246,7 +246,7 @@ { // would be good if this parameter was available from the current // voice... - float wav_srate = wave(units.head()->f("sig"))->sample_rate(); + float wav_srate = (units.head() != NULL) ? wave(units.head()->f("sig"))->sample_rate() : 0; // currently, the pitchmarks are just moved, there's no deletion or // insertion @@ -261,8 +261,8 @@ // handle special case of first half of first diphone unit EST_Item *diphone_left = units.head(); - int left_start_index = diphone_left->I("middle_frame"); - int left_end_index = source_pm.index(diphone_left->F("end")); + int left_start_index = ((diphone_left != NULL) ? diphone_left->I("middle_frame") : 0); + int left_end_index = ((diphone_left != NULL ) ? source_pm.index(diphone_left->F("end")) : 0); for( int i=0; i<left_start_index; ++i ){ target_pm.t(i) = source_pm.t(i); @@ -438,7 +438,7 @@ { // would be good if this parameter was available from the current // voice... - float wav_srate = wave(units.head()->f("sig"))->sample_rate(); + float wav_srate = (units.head() != NULL) ? wave(units.head()->f("sig"))->sample_rate() : 0; // currently, the pitchmarks are just moved, there's no deletion or // insertion @@ -453,8 +453,8 @@ // handle special case of first half of first diphone unit EST_Item *diphone_left = units.head(); - int left_start_index = diphone_left->I("middle_frame"); - int left_end_index = source_pm.index(diphone_left->F("end")); + int left_start_index = ((diphone_left != NULL) ? diphone_left->I("middle_frame") : 0); + int left_end_index = ((diphone_left != NULL) ? source_pm.index(diphone_left->F("end")) : 0); for( int i=0; i<left_start_index; ++i ){ target_pm.t(i) = source_pm.t(i); @@ -611,9 +611,10 @@ EST_Relation *source_lab, *target_lab; EST_IVector *map; EST_Track *source_coef=0, *target_coef=0; + EST_Val undef; - source_coef = track(utt.relation("SourceCoef")->head()->f("coefs")); - target_coef = track(utt.relation("TargetCoef")->head()->f("coefs")); + source_coef = track((utt.relation("SourceCoef")->head() != NULL) ? utt.relation("SourceCoef")->head()->f("coefs") : undef); + target_coef = track((utt.relation("TargetCoef")->head() != NULL) ? utt.relation("TargetCoef")->head()->f("coefs") : undef); map = new EST_IVector; diff -Naru festival_orig/src/modules/UniSyn/us_unit.cc festival/src/modules/UniSyn/us_unit.cc --- festival_orig/src/modules/UniSyn/us_unit.cc 2017-09-05 00:54:08.000000000 +0900 +++ festival/src/modules/UniSyn/us_unit.cc 2020-06-19 16:49:35.840528086 +0900 @@ -565,8 +565,9 @@ void us_linear_smooth_amplitude( EST_Utterance *utt ) { - EST_WaveVector *pp = wavevector(utt->relation("SourceCoef")->first()->f("frame")); - EST_Track *pm = track(utt->relation("SourceCoef")->first()->f("coefs")); + EST_Val undef; + EST_WaveVector *pp = wavevector((utt->relation("SourceCoef")->first() != NULL) ? utt->relation("SourceCoef")->first()->f("frame") : undef); + EST_Track *pm = track((utt->relation("SourceCoef")->first() != NULL) ? utt->relation("SourceCoef")->first()->f("coefs") : undef); EST_Track *energy = us_pitch_period_energy_contour( *pp, *pm ); energy->save( "./energy_track.est", "est" ); diff -Naru festival_orig/src/modules/UniSyn_diphone/us_diphone_unit.cc festival/src/modules/UniSyn_diphone/us_diphone_unit.cc --- festival_orig/src/modules/UniSyn_diphone/us_diphone_unit.cc 2017-09-05 00:54:08.000000000 +0900 +++ festival/src/modules/UniSyn_diphone/us_diphone_unit.cc 2020-06-19 16:15:22.975110424 +0900 @@ -63,25 +63,30 @@ const float pause_duration = 0.1; t = segment.head(); - if (!ph_is_silence(t->f("name"))) - { + if (t != NULL) { + if (!ph_is_silence(t->f("name"))) + { n = t->insert_before(); n->set("name", ph_silence()); n->set("dur", pause_duration); shift += pause_duration; + } } t = segment.tail(); - if (!ph_is_silence(t->S("name"))) - { + if (t != NULL) { + if (!ph_is_silence(t->S("name"))) + { n = t->insert_after(); n->set("name", ph_silence()); n->set("dur", pause_duration); shift += pause_duration; + } } dur_to_end(segment); - target.tail()->set("pos", (target.tail()->F("pos") + shift)); + if (target.tail() != NULL) + target.tail()->set("pos", (target.tail()->F("pos") + shift)); } void add_end_silences(EST_Relation &segment) @@ -89,18 +94,22 @@ EST_Item *t, *n; t = segment.head(); - if (!ph_is_silence(t->S("name"))) + if (t != NULL) { + if (!ph_is_silence(t->S("name"))) { n = t->insert_before(); n->set("name", ph_silence()); } + } t = segment.tail(); - if (!ph_is_silence(t->S("name"))) + if (t != NULL) { + if (!ph_is_silence(t->S("name"))) { n = t->insert_after(); n->set("name", ph_silence()); } + } } void parse_diphone_times(EST_Relation &diphone_stream, diff -Naru festival_orig/src/modules/clunits/cljoin.cc festival/src/modules/clunits/cljoin.cc --- festival_orig/src/modules/clunits/cljoin.cc 2017-09-05 00:54:08.000000000 +0900 +++ festival/src/modules/clunits/cljoin.cc 2020-06-19 16:29:25.463181614 +0900 @@ -107,12 +107,12 @@ // printf("source_lab relations is %s\n",(const char *)source_lab.name()); if (target_pm.t(target_pm.num_frames() - 1) < - source_lab.tail()->F("end",0)) + ((source_lab.tail() != NULL) ? source_lab.tail()->F("end",0) : 0)) { EST_warning("Target pitchmarks end before end of target segment " "timings (%f vs %f). Expect a truncated utterance\n", target_pm.t(target_pm.num_frames() - 1), - source_lab.tail()->F("end",0.0)); + ((source_lab.tail() != NULL) ? source_lab.tail()->F("end",0.0) : 0.0)); } n_i = 0; @@ -170,9 +170,10 @@ EST_IVector *map; EST_Track *source_coef=0, *target_coef=0; float dur_impose_factor, f0_impose_factor; + EST_Val undef; - source_coef = track(utt.relation("SourceCoef")->head()->f("coefs")); - target_coef = track(utt.relation("TargetCoef")->head()->f("coefs")); + source_coef = track((utt.relation("SourceCoef")->head() != NULL) ? utt.relation("SourceCoef")->head()->f("coefs") : undef); + target_coef = track((utt.relation("TargetCoef")->head() != NULL) ? utt.relation("TargetCoef")->head()->f("coefs") : undef); target_lab = utt.relation("Segment"); map = new EST_IVector;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor