1 /* Copyright (C) 2013, 2018, 2019 Olga Yakovleva <yakovleva.o.v@gmail.com> */ 2 3 /* This program is free software: you can redistribute it and/or modify */ 4 /* it under the terms of the GNU Lesser General Public License as published by */ 5 /* the Free Software Foundation, either version 2.1 of the License, or */ 6 /* (at your option) any later version. */ 7 8 /* This program is distributed in the hope that it will be useful, */ 9 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 10 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ 11 /* GNU Lesser General Public License for more details. */ 12 13 /* You should have received a copy of the GNU Lesser General Public License */ 14 /* along with this program. If not, see <http://www.gnu.org/licenses/>. */ 15 16 #ifndef RHVOICE_STD_HTS_ENGINE_IMPL_HPP 17 #define RHVOICE_STD_HTS_ENGINE_IMPL_HPP 18 19 #include <memory> 20 #include "hts_engine_impl.hpp" 21 #include "quality_setting.hpp" 22 23 struct _HTS_Engine; 24 25 namespace RHVoice 26 { 27 class voice_info; 28 29 class std_hts_engine_impl: public hts_engine_impl 30 { 31 public: 32 explicit std_hts_engine_impl(const voice_info& info); 33 ~std_hts_engine_impl(); 34 35 virtual bool supports_quality(quality_t q) const; 36 37 private: 38 pointer do_create() const; 39 void do_initialize(); 40 void do_reset(); 41 void do_synthesize(); 42 void do_stop(); 43 void load_labels(); 44 void set_time_info(); 45 void set_speed(); 46 void edit_pitch(); 47 48 std::unique_ptr<_HTS_Engine> engine; 49 }; 50 } 51 #endif 52