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 (1.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: Mon Sep 2 11:30:52 2024
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
40{
41 //Check for --help option
42 if (config.check("help"))
43 {
44 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << getDocumentationOfDeviceParams();
45 }
46
47 std::string config_string = config.toString();
48 yarp::os::Property prop_check(config_string.c_str());
49 //Parser of parameter language_code
50 {
51 if (config.check("language_code"))
52 {
53 m_language_code = config.find("language_code").asString();
54 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'language_code' using value:" << m_language_code;
55 }
56 else
57 {
58 yCError(GoogleSpeechSynthesizerParamsCOMPONENT) << "Mandatory parameter 'language_code' not found!";
59 yCError(GoogleSpeechSynthesizerParamsCOMPONENT) << "Description of the parameter: Language for speech synthesis (e.g. \"ita\", \"eng\")";
60 return false;
61 }
62 prop_check.unput("language_code");
63 }
64
65 //Parser of parameter voice_name
66 {
67 if (config.check("voice_name"))
68 {
69 m_voice_name = config.find("voice_name").asString();
70 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_name' using value:" << m_voice_name;
71 }
72 else
73 {
74 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_name' using DEFAULT value:" << m_voice_name;
75 }
76 prop_check.unput("voice_name");
77 }
78
79 //Parser of parameter voice_speed
80 {
81 if (config.check("voice_speed"))
82 {
83 m_voice_speed = config.find("voice_speed").asFloat64();
84 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_speed' using value:" << m_voice_speed;
85 }
86 else
87 {
88 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_speed' using DEFAULT value:" << m_voice_speed;
89 }
90 prop_check.unput("voice_speed");
91 }
92
93 //Parser of parameter voice_pitch
94 {
95 if (config.check("voice_pitch"))
96 {
97 m_voice_pitch = config.find("voice_pitch").asFloat64();
98 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_pitch' using value:" << m_voice_pitch;
99 }
100 else
101 {
102 yCInfo(GoogleSpeechSynthesizerParamsCOMPONENT) << "Parameter 'voice_pitch' using DEFAULT value:" << m_voice_pitch;
103 }
104 prop_check.unput("voice_pitch");
105 }
106
107 /*
108 //This code check if the user set some parameter which are not check by the parser
109 //If the parser is set in strict mode, this will generate an error
110 if (prop_check.size() > 0)
111 {
112 bool extra_params_found = false;
113 for (auto it=prop_check.begin(); it!=prop_check.end(); it++)
114 {
115 if (m_parser_is_strict)
116 {
117 yCError(GoogleSpeechSynthesizerParamsCOMPONENT) << "User asking for parameter: "<<it->name <<" which is unknown to this parser!";
118 extra_params_found = true;
119 }
120 else
121 {
122 yCWarning(GoogleSpeechSynthesizerParamsCOMPONENT) << "User asking for parameter: "<< it->name <<" which is unknown to this parser!";
123 }
124 }
125
126 if (m_parser_is_strict && extra_params_found)
127 {
128 return false;
129 }
130 }
131 */
132 return true;
133}
134
135
137{
138 std::string doc;
139 doc = doc + std::string("\n=============================================\n");
140 doc = doc + std::string("This is the help for device: GoogleSpeechSynthesizer\n");
141 doc = doc + std::string("\n");
142 doc = doc + std::string("This is the list of the parameters accepted by the device:\n");
143 doc = doc + std::string("'language_code': Language for speech synthesis (e.g. \"ita\", \"eng\")\n");
144 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");
145 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");
146 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");
147 doc = doc + std::string("\n");
148 doc = doc + std::string("Here are some examples of invocation command with yarpdev, with all params:\n");
149 doc = doc + " yarpdev --device googleSpeechSynthesizer --language_code <mandatory_value> --voice_name <optional_value> --voice_speed 1 --voice_pitch 0\n";
150 doc = doc + std::string("Using only mandatory params:\n");
151 doc = doc + " yarpdev --device googleSpeechSynthesizer --language_code <mandatory_value>\n";
152 doc = doc + std::string("=============================================\n\n"); return doc;
153}
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,...)