YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
GoogleSpeechSynthesizer_ParamsParser.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2023-2023 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: LGPL-2.1-or-later
4 */
5
6
7// Generated by yarpDeviceParamParserGenerator (2.0)
8// This is an automatically generated file. Please do not edit it.
9// It will be re-generated if the cmake flag ALLOW_DEVICE_PARAM_PARSER_GERNERATION is ON.
10
11// Generated on: Fri Jun 6 15:30:04 2025
12
13
15#include <yarp/os/LogStream.h>
16#include <yarp/os/Value.h>
17
18namespace {
19 YARP_LOG_COMPONENT(GoogleSpeechSynthesizerParamsCOMPONENT, "yarp.device.GoogleSpeechSynthesizer")
20}
21
22
26
27
29{
30 std::vector<std::string> params;
31 params.push_back("language_code");
32 params.push_back("voice_name");
33 params.push_back("voice_speed");
34 params.push_back("voice_pitch");
35 return params;
36}
37
38
39bool GoogleSpeechSynthesizer_ParamsParser::getParamValue(const std::string& paramName, std::string& paramValue) const
40{
41 if (paramName =="language_code")
42 {
43 paramValue = m_language_code;
44 return true;
45 }
46 if (paramName =="voice_name")
47 {
48 paramValue = m_voice_name;
49 return true;
50 }
51 if (paramName =="voice_speed")
52 {
53 paramValue = std::to_string(m_voice_speed);
54 return true;
55 }
56 if (paramName =="voice_pitch")
57 {
58 paramValue = std::to_string(m_voice_pitch);
59 return true;
60 }
61
62 yError() <<"parameter '" << paramName << "' was not found";
63 return false;
64
65}
66
67
69{
70 //This is a sub-optimal solution.
71 //Ideally getConfiguration() should return all parameters but it is currently
72 //returning only user provided parameters (excluding default values)
73 //This behaviour will be fixed in the near future.
74 std::string s_cfg = m_provided_configuration;
75 return s_cfg;
76}
77
79{
80 //Check for --help option
81 if (config.check("help"))
82 {
83 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << getDocumentationOfDeviceParams();
84 }
85
88 //Parser of parameter language_code
89 {
90 if (config.check("language_code"))
91 {
92 m_language_code = config.find("language_code").asString();
93 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'language_code' using value:" << m_language_code;
94 }
95 else
96 {
97 yCError(GoogleSpeechSynthesizerParamsCOMPONENT) << "Mandatory parameter 'language_code' not found!";
98 yCError(GoogleSpeechSynthesizerParamsCOMPONENT) << "Description of the parameter: Language for speech synthesis (e.g. \"ita\", \"eng\")";
99 return false;
100 }
101 prop_check.unput("language_code");
102 }
103
104 //Parser of parameter voice_name
105 {
106 if (config.check("voice_name"))
107 {
108 m_voice_name = config.find("voice_name").asString();
109 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_name' using value:" << m_voice_name;
110 }
111 else
112 {
113 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_name' using DEFAULT value:" << m_voice_name;
114 }
115 prop_check.unput("voice_name");
116 }
117
118 //Parser of parameter voice_speed
119 {
120 if (config.check("voice_speed"))
121 {
122 m_voice_speed = config.find("voice_speed").asFloat64();
123 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_speed' using value:" << m_voice_speed;
124 }
125 else
126 {
127 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_speed' using DEFAULT value:" << m_voice_speed;
128 }
129 prop_check.unput("voice_speed");
130 }
131
132 //Parser of parameter voice_pitch
133 {
134 if (config.check("voice_pitch"))
135 {
136 m_voice_pitch = config.find("voice_pitch").asFloat64();
137 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_pitch' using value:" << m_voice_pitch;
138 }
139 else
140 {
141 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_pitch' using DEFAULT value:" << m_voice_pitch;
142 }
143 prop_check.unput("voice_pitch");
144 }
145
146 /*
147 //This code check if the user set some parameter which are not check by the parser
148 //If the parser is set in strict mode, this will generate an error
149 if (prop_check.size() > 0)
150 {
151 bool extra_params_found = false;
152 for (auto it=prop_check.begin(); it!=prop_check.end(); it++)
153 {
154 if (m_parser_is_strict)
155 {
156 yCError(GoogleSpeechSynthesizerParamsCOMPONENT) << "User asking for parameter: "<<it->name <<" which is unknown to this parser!";
157 extra_params_found = true;
158 }
159 else
160 {
161 yCWarning(GoogleSpeechSynthesizerParamsCOMPONENT) << "User asking for parameter: "<< it->name <<" which is unknown to this parser!";
162 }
163 }
164
165 if (m_parser_is_strict && extra_params_found)
166 {
167 return false;
168 }
169 }
170 */
171 return true;
172}
173
174
176{
177 std::string doc;
178 doc = doc + std::string("\n=============================================\n");
179 doc = doc + std::string("This is the help for device: GoogleSpeechSynthesizer\n");
180 doc = doc + std::string("\n");
181 doc = doc + std::string("This is the list of the parameters accepted by the device:\n");
182 doc = doc + std::string("'language_code': Language for speech synthesis (e.g. \"ita\", \"eng\")\n");
183 doc = doc + std::string("'voice_name': The voice set for speech synthesis. If not set, the device will pick the first available voice for the selected language code (This page holds the complete list of the available voices: https://cloud.google.com/text-to-speech/docs/voices)\n");
184 doc = doc + std::string("'voice_speed': Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast.\n");
185 doc = doc + std::string("'voice_pitch': Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 semitones from the original pitch. -20 means decrease 20 semitones from the original pitch.\n");
186 doc = doc + std::string("\n");
187 doc = doc + std::string("Here are some examples of invocation command with yarpdev, with all params:\n");
188 doc = doc + " yarpdev --device googleSpeechSynthesizer --language_code <mandatory_value> --voice_name <optional_value> --voice_speed 1 --voice_pitch 0\n";
189 doc = doc + std::string("Using only mandatory params:\n");
190 doc = doc + " yarpdev --device googleSpeechSynthesizer --language_code <mandatory_value>\n";
191 doc = doc + std::string("=============================================\n\n"); return doc;
192}
#define yError(...)
Definition Log.h:361
bool getParamValue(const std::string &paramName, std::string &paramValue) const override
Return the value (represented as a string) of the requested parameter.
std::string getConfiguration() const override
Return the configuration of the device.
std::vector< std::string > getListOfParams() const override
Return a list of all params used by the device.
bool parseParams(const yarp::os::Searchable &config) override
Parse the DeviceDriver parameters.
std::string getDocumentationOfDeviceParams() const override
Get the documentation of the DeviceDriver's parameters.
A class for storing options and configuration information.
Definition Property.h:33
void unput(const std::string &key)
Remove the association from the given key to a value, if present.
A base class for nested structures that can be searched.
Definition Searchable.h:31
virtual bool check(const std::string &key) const =0
Check if there exists a property of the given name.
virtual std::string toString() const =0
Return a standard text representation of the content of the object.
virtual Value & find(const std::string &key) const =0
Gets a value corresponding to a given keyword.
#define yCInfo(component,...)
#define yCError(component,...)
#define YARP_LOG_COMPONENT(name,...)