diff --git a/lib/src/amazon/audio/audio_client.dart b/lib/src/amazon/audio/audio_client.dart index af4cd80..a8e7dfd 100644 --- a/lib/src/amazon/audio/audio_client.dart +++ b/lib/src/amazon/audio/audio_client.dart @@ -9,6 +9,16 @@ class AudioClientAmazon extends BaseClient { @override Future send(http.BaseRequest request) { + // Log initial request values + print('--- Amazon Polly Request ---'); + print('URL: ${request.url}'); + print('Method: ${request.method}'); + print('Initial Headers: ${request.headers}'); + print('Query Parameters: ${request.url.queryParameters}'); + if (request is http.Request) { + print('Request Body: ${request.body}'); + } + request.headers['Content-Type'] = "application/json"; final sigv4Client = Sigv4Client( @@ -18,6 +28,8 @@ class AudioClientAmazon extends BaseClient { serviceName: 'polly', ); + print('Region = ${ConfigAmazon.region}'); + final headers = sigv4Client.signedHeaders( request.url.toString(), method: request.method, @@ -26,8 +38,15 @@ class AudioClientAmazon extends BaseClient { body: request is http.Request ? request.body : null, ); + // Log signed headers + print('Signed Headers: $headers'); + request.headers.addAll(headers); + print('Final Headers After Merge: ${request.headers}'); + print('------------------------------'); + return client.send(request); } + } diff --git a/lib/src/amazon/audio/audio_handler.dart b/lib/src/amazon/audio/audio_handler.dart index db21846..a98e840 100644 --- a/lib/src/amazon/audio/audio_handler.dart +++ b/lib/src/amazon/audio/audio_handler.dart @@ -17,16 +17,19 @@ class AudioHandlerAmazon { try { final ssml = SsmlAmazon(text: params.text, rate: params.rate, pitch: params.pitch); + print('Inisde = ${params.voice.isSsml}'); final Map body = { 'OutputFormat': params.audioFormat, - 'Text': ssml.sanitizedSsml, - 'TextType': 'ssml', + 'Text': params.voice.isSsml=='ssml'?ssml.sanitizedSsml:params.text, + // 'TextType':params.voice.isSsml? 'ssml':'text', + 'TextType':params.voice.isSsml, 'VoiceId': params.voice.code, - // 'Engine': params.voice.engines + 'Engine': params.voice.engines.first }; final String bodyJson = jsonEncode(body); + print('api = ${EndpointsAmazon.tts} body = ${jsonEncode(body)}'); final response = await audioClient.post(Uri.parse(EndpointsAmazon.tts), body: bodyJson); diff --git a/lib/src/amazon/voices/voice_model.dart b/lib/src/amazon/voices/voice_model.dart index c7de34e..edcb511 100644 --- a/lib/src/amazon/voices/voice_model.dart +++ b/lib/src/amazon/voices/voice_model.dart @@ -25,6 +25,7 @@ class VoiceAmazon extends VoiceUniversal { @JsonKey(name: "LanguageCode", fromJson: _toLocale, includeToJson: false) VoiceLocale locale; + VoiceAmazon( {this.provider = TtsProviders.amazon, required this.engines, @@ -32,7 +33,9 @@ class VoiceAmazon extends VoiceUniversal { required this.name, required this.nativeName, required this.gender, - required this.locale}) + required this.locale, + String isSsml = 'ssml', // ✅ Add this + }) : super( provider: provider, engines: engines, @@ -40,7 +43,9 @@ class VoiceAmazon extends VoiceUniversal { name: name, nativeName: nativeName, gender: gender, - locale: locale); + locale: locale, + isSsml: isSsml, // ✅ Pass to base + ); factory VoiceAmazon.fromJson(Map json) => _$VoiceAmazonFromJson(json); diff --git a/lib/src/universal/tts/tts_params_mapper.dart b/lib/src/universal/tts/tts_params_mapper.dart index b468c06..c16f7c6 100644 --- a/lib/src/universal/tts/tts_params_mapper.dart +++ b/lib/src/universal/tts/tts_params_mapper.dart @@ -46,6 +46,7 @@ class TtsParamsMapper { static TtsParamsAmazon toAmazon(TtsParamsUniversal universalParams) { return TtsParamsAmazon( + voice: VoiceAmazon( engines: universalParams.voice.engines, code: universalParams.voice.code, @@ -53,6 +54,7 @@ class TtsParamsMapper { nativeName: universalParams.voice.nativeName, gender: universalParams.voice.gender, locale: universalParams.voice.locale, + isSsml: universalParams.voice.isSsml, // ✅ Add this ), text: universalParams.text, audioFormat: diff --git a/lib/src/universal/voices/voice_model.dart b/lib/src/universal/voices/voice_model.dart index ff8e679..4d070ab 100644 --- a/lib/src/universal/voices/voice_model.dart +++ b/lib/src/universal/voices/voice_model.dart @@ -9,6 +9,30 @@ class VoiceUniversal { String gender; VoiceLocale locale; + String isSsml; + + VoiceUniversal copyWith({ + String? provider, + List? engines, + String? code, + String? name, + String? nativeName, + String? gender, + VoiceLocale? locale, + String? isSsml, + }) { + return VoiceUniversal( + provider: provider ?? this.provider, + engines: engines ?? List.from(this.engines), + code: code ?? this.code, + name: name ?? this.name, + nativeName: nativeName ?? this.nativeName, + gender: gender ?? this.gender, + locale: locale ?? this.locale, + isSsml: isSsml??this.isSsml, + ); + } + VoiceUniversal({ required this.provider, required this.engines, @@ -17,5 +41,6 @@ class VoiceUniversal { required this.nativeName, required this.gender, required this.locale, + this.isSsml='ssml', }); }