{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module Network.Google.TextToSpeech.Types.Product where
import Network.Google.Prelude
import Network.Google.TextToSpeech.Types.Sum
data AudioConfig = AudioConfig'
{ _acVolumeGainDB :: !(Maybe (Textual Double))
, _acSampleRateHertz :: !(Maybe (Textual Int32))
, _acAudioEncoding :: !(Maybe AudioConfigAudioEncoding)
, _acSpeakingRate :: !(Maybe (Textual Double))
, _acPitch :: !(Maybe (Textual Double))
} deriving (Eq,Show,Data,Typeable,Generic)
audioConfig
:: AudioConfig
audioConfig =
AudioConfig'
{ _acVolumeGainDB = Nothing
, _acSampleRateHertz = Nothing
, _acAudioEncoding = Nothing
, _acSpeakingRate = Nothing
, _acPitch = Nothing
}
acVolumeGainDB :: Lens' AudioConfig (Maybe Double)
acVolumeGainDB
= lens _acVolumeGainDB
(\ s a -> s{_acVolumeGainDB = a})
. mapping _Coerce
acSampleRateHertz :: Lens' AudioConfig (Maybe Int32)
acSampleRateHertz
= lens _acSampleRateHertz
(\ s a -> s{_acSampleRateHertz = a})
. mapping _Coerce
acAudioEncoding :: Lens' AudioConfig (Maybe AudioConfigAudioEncoding)
acAudioEncoding
= lens _acAudioEncoding
(\ s a -> s{_acAudioEncoding = a})
acSpeakingRate :: Lens' AudioConfig (Maybe Double)
acSpeakingRate
= lens _acSpeakingRate
(\ s a -> s{_acSpeakingRate = a})
. mapping _Coerce
acPitch :: Lens' AudioConfig (Maybe Double)
acPitch
= lens _acPitch (\ s a -> s{_acPitch = a}) .
mapping _Coerce
instance FromJSON AudioConfig where
parseJSON
= withObject "AudioConfig"
(\ o ->
AudioConfig' <$>
(o .:? "volumeGainDb") <*> (o .:? "sampleRateHertz")
<*> (o .:? "audioEncoding")
<*> (o .:? "speakingRate")
<*> (o .:? "pitch"))
instance ToJSON AudioConfig where
toJSON AudioConfig'{..}
= object
(catMaybes
[("volumeGainDb" .=) <$> _acVolumeGainDB,
("sampleRateHertz" .=) <$> _acSampleRateHertz,
("audioEncoding" .=) <$> _acAudioEncoding,
("speakingRate" .=) <$> _acSpeakingRate,
("pitch" .=) <$> _acPitch])
data VoiceSelectionParams = VoiceSelectionParams'
{ _vspLanguageCode :: !(Maybe Text)
, _vspSsmlGender :: !(Maybe VoiceSelectionParamsSsmlGender)
, _vspName :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
voiceSelectionParams
:: VoiceSelectionParams
voiceSelectionParams =
VoiceSelectionParams'
{ _vspLanguageCode = Nothing
, _vspSsmlGender = Nothing
, _vspName = Nothing
}
vspLanguageCode :: Lens' VoiceSelectionParams (Maybe Text)
vspLanguageCode
= lens _vspLanguageCode
(\ s a -> s{_vspLanguageCode = a})
vspSsmlGender :: Lens' VoiceSelectionParams (Maybe VoiceSelectionParamsSsmlGender)
vspSsmlGender
= lens _vspSsmlGender
(\ s a -> s{_vspSsmlGender = a})
vspName :: Lens' VoiceSelectionParams (Maybe Text)
vspName = lens _vspName (\ s a -> s{_vspName = a})
instance FromJSON VoiceSelectionParams where
parseJSON
= withObject "VoiceSelectionParams"
(\ o ->
VoiceSelectionParams' <$>
(o .:? "languageCode") <*> (o .:? "ssmlGender") <*>
(o .:? "name"))
instance ToJSON VoiceSelectionParams where
toJSON VoiceSelectionParams'{..}
= object
(catMaybes
[("languageCode" .=) <$> _vspLanguageCode,
("ssmlGender" .=) <$> _vspSsmlGender,
("name" .=) <$> _vspName])
data SynthesizeSpeechRequest = SynthesizeSpeechRequest'
{ _ssrAudioConfig :: !(Maybe AudioConfig)
, _ssrInput :: !(Maybe SynthesisInput)
, _ssrVoice :: !(Maybe VoiceSelectionParams)
} deriving (Eq,Show,Data,Typeable,Generic)
synthesizeSpeechRequest
:: SynthesizeSpeechRequest
synthesizeSpeechRequest =
SynthesizeSpeechRequest'
{ _ssrAudioConfig = Nothing
, _ssrInput = Nothing
, _ssrVoice = Nothing
}
ssrAudioConfig :: Lens' SynthesizeSpeechRequest (Maybe AudioConfig)
ssrAudioConfig
= lens _ssrAudioConfig
(\ s a -> s{_ssrAudioConfig = a})
ssrInput :: Lens' SynthesizeSpeechRequest (Maybe SynthesisInput)
ssrInput = lens _ssrInput (\ s a -> s{_ssrInput = a})
ssrVoice :: Lens' SynthesizeSpeechRequest (Maybe VoiceSelectionParams)
ssrVoice = lens _ssrVoice (\ s a -> s{_ssrVoice = a})
instance FromJSON SynthesizeSpeechRequest where
parseJSON
= withObject "SynthesizeSpeechRequest"
(\ o ->
SynthesizeSpeechRequest' <$>
(o .:? "audioConfig") <*> (o .:? "input") <*>
(o .:? "voice"))
instance ToJSON SynthesizeSpeechRequest where
toJSON SynthesizeSpeechRequest'{..}
= object
(catMaybes
[("audioConfig" .=) <$> _ssrAudioConfig,
("input" .=) <$> _ssrInput,
("voice" .=) <$> _ssrVoice])
newtype ListVoicesResponse = ListVoicesResponse'
{ _lvrVoices :: Maybe [Voice]
} deriving (Eq,Show,Data,Typeable,Generic)
listVoicesResponse
:: ListVoicesResponse
listVoicesResponse =
ListVoicesResponse'
{ _lvrVoices = Nothing
}
lvrVoices :: Lens' ListVoicesResponse [Voice]
lvrVoices
= lens _lvrVoices (\ s a -> s{_lvrVoices = a}) .
_Default
. _Coerce
instance FromJSON ListVoicesResponse where
parseJSON
= withObject "ListVoicesResponse"
(\ o ->
ListVoicesResponse' <$> (o .:? "voices" .!= mempty))
instance ToJSON ListVoicesResponse where
toJSON ListVoicesResponse'{..}
= object (catMaybes [("voices" .=) <$> _lvrVoices])
data SynthesisInput = SynthesisInput'
{ _siText :: !(Maybe Text)
, _siSsml :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
synthesisInput
:: SynthesisInput
synthesisInput =
SynthesisInput'
{ _siText = Nothing
, _siSsml = Nothing
}
siText :: Lens' SynthesisInput (Maybe Text)
siText = lens _siText (\ s a -> s{_siText = a})
siSsml :: Lens' SynthesisInput (Maybe Text)
siSsml = lens _siSsml (\ s a -> s{_siSsml = a})
instance FromJSON SynthesisInput where
parseJSON
= withObject "SynthesisInput"
(\ o ->
SynthesisInput' <$>
(o .:? "text") <*> (o .:? "ssml"))
instance ToJSON SynthesisInput where
toJSON SynthesisInput'{..}
= object
(catMaybes
[("text" .=) <$> _siText, ("ssml" .=) <$> _siSsml])
newtype SynthesizeSpeechResponse = SynthesizeSpeechResponse'
{ _ssrAudioContent :: Maybe Bytes
} deriving (Eq,Show,Data,Typeable,Generic)
synthesizeSpeechResponse
:: SynthesizeSpeechResponse
synthesizeSpeechResponse =
SynthesizeSpeechResponse'
{ _ssrAudioContent = Nothing
}
ssrAudioContent :: Lens' SynthesizeSpeechResponse (Maybe ByteString)
ssrAudioContent
= lens _ssrAudioContent
(\ s a -> s{_ssrAudioContent = a})
. mapping _Bytes
instance FromJSON SynthesizeSpeechResponse where
parseJSON
= withObject "SynthesizeSpeechResponse"
(\ o ->
SynthesizeSpeechResponse' <$> (o .:? "audioContent"))
instance ToJSON SynthesizeSpeechResponse where
toJSON SynthesizeSpeechResponse'{..}
= object
(catMaybes
[("audioContent" .=) <$> _ssrAudioContent])
data Voice = Voice'
{ _vLanguageCodes :: !(Maybe [Text])
, _vNATuralSampleRateHertz :: !(Maybe (Textual Int32))
, _vSsmlGender :: !(Maybe VoiceSsmlGender)
, _vName :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
voice
:: Voice
voice =
Voice'
{ _vLanguageCodes = Nothing
, _vNATuralSampleRateHertz = Nothing
, _vSsmlGender = Nothing
, _vName = Nothing
}
vLanguageCodes :: Lens' Voice [Text]
vLanguageCodes
= lens _vLanguageCodes
(\ s a -> s{_vLanguageCodes = a})
. _Default
. _Coerce
vNATuralSampleRateHertz :: Lens' Voice (Maybe Int32)
vNATuralSampleRateHertz
= lens _vNATuralSampleRateHertz
(\ s a -> s{_vNATuralSampleRateHertz = a})
. mapping _Coerce
vSsmlGender :: Lens' Voice (Maybe VoiceSsmlGender)
vSsmlGender
= lens _vSsmlGender (\ s a -> s{_vSsmlGender = a})
vName :: Lens' Voice (Maybe Text)
vName = lens _vName (\ s a -> s{_vName = a})
instance FromJSON Voice where
parseJSON
= withObject "Voice"
(\ o ->
Voice' <$>
(o .:? "languageCodes" .!= mempty) <*>
(o .:? "naturalSampleRateHertz")
<*> (o .:? "ssmlGender")
<*> (o .:? "name"))
instance ToJSON Voice where
toJSON Voice'{..}
= object
(catMaybes
[("languageCodes" .=) <$> _vLanguageCodes,
("naturalSampleRateHertz" .=) <$>
_vNATuralSampleRateHertz,
("ssmlGender" .=) <$> _vSsmlGender,
("name" .=) <$> _vName])