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