amPm, int hour, int minute, boolean isAM) {
+ String hourWord = numbers.get(hour);
+ String minuteWord = minutes.getOrDefault(minute, "e " + minute);
+ String amPmWord = isAM ? amPm.get("AM") : amPm.get("PM");
+
+ if (minute == 0) {
+ return hourWord + " " + minuteWord + " " + amPmWord;
+ } else {
+ return hourWord + " " + minuteWord + " " + amPmWord;
+ }
+ }
+
+ public static void main(String[] args) {
+ System.out.println("Current time in Brazil (English): " + getTimeInWords(false));
+ System.out.println("Hora atual no Brasil (Português): " + getTimeInWords(true));
+ }
+}
diff --git a/java-ai/src/main/java/oracleai/common/SecurityConfig.java b/java-ai/src/main/java/oracleai/common/SecurityConfig.java
new file mode 100644
index 0000000..96fa5ba
--- /dev/null
+++ b/java-ai/src/main/java/oracleai/common/SecurityConfig.java
@@ -0,0 +1,37 @@
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.provisioning.InMemoryUserDetailsManager;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.web.SecurityFilterChain;
+
+@Configuration
+@EnableWebSecurity
+public class SecurityConfig {
+
+ @Bean
+ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
+ http
+ .authorizeHttpRequests(auth -> auth
+ .requestMatchers("/public").permitAll() // Allow public access
+ .anyRequest().authenticated() // Require authentication for all other endpoints
+ )
+ .httpBasic(); // Enable Basic Authentication
+
+ return http.build();
+ }
+
+ @Bean
+ public UserDetailsService userDetailsService() {
+ UserDetails user = User.withDefaultPasswordEncoder()
+ .username("oracleai")
+ .password("oracleai")
+ .roles("USER")
+ .build();
+
+ return new InMemoryUserDetailsManager(user);
+ }
+}
diff --git a/java-ai/src/main/resources/application.yaml b/java-ai/src/main/resources/application.yaml
index a8659f5..1823cef 100644
--- a/java-ai/src/main/resources/application.yaml
+++ b/java-ai/src/main/resources/application.yaml
@@ -1,31 +1,66 @@
spring:
+ main:
+ allow-circular-references: true
+ security:
+ user:
+ name: oracleai
+ password: oracleai
+
+ web:
+ resources:
+ static-locations: classpath:/static/
+
+ mvc:
+ cors:
+ allowed-origin-patterns: ["*"] # ✅ Allow all origins
+ allowed-methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"]
+ allowed-headers: ["*"]
+
servlet:
+ websocket:
+ buffer-size: 65536 # ✅ Increase WebSocket buffer size
multipart:
enabled: true
max-file-size: 200MB
max-request-size: 200MB
+
cloud:
oci:
config:
type: INSTANCE_PRINCIPAL
- datasource:
- # Example where a wallet is used (TNS_ADMIN is the location of the wallet).
- # Eg if using Oracle Cloud ADB (autonomous database) Always Free.
- # url: "jdbc:oracle:thin:@xr_tp?TNS_ADMIN=/Users/me/Wallet_mydb"
- # Example without wallet. Eg if using Oracle 23c Free.
- # url: "jdbc:oracle:thin:@localhost:1521/freepdb1"
- url: jdbc:oracle:thin:@mydb_tp?TNS_ADMIN=/Users/me/Wallet_mydb
- # Use "admin" for username for setup with Oracle Cloud ADB
- # and use "sys as sysdba" for username for setup with Oracle 23c Free
- username: moviestream
- password: Welcome12345
- driver-class-name: oracle.jdbc.OracleDriver
- type: oracle.ucp.jdbc.PoolDataSource
- oracleucp:
- connection-factory-class-name: oracle.jdbc.pool.OracleDataSource
-logging:
- level:
- org.springframework.web.cors: DEBUG
+
+ # datasource:
+ # url: jdbc:oracle:thin:@selectaidb_high?TNS_ADMIN=C:/Users/opc/Downloads/Wallet_SelectAIDB/Wallet_SelectAIDB
+
+ # username: moviestream
+ # password: Welcome12345
+ # driver-class-name: oracle.jdbc.OracleDriver
+ # type: oracle.ucp.jdbc.PoolDataSource
+ # oracleucp:
+ # connection-factory-class-name: oracle.jdbc.pool.OracleDataSource
+ # connection-pool-name: AccountConnectionPool
+ # initial-pool-size: 15s
+ # min-pool-size: 10
+ # max-pool-size: 30
+
+
+#logging:
+# level:
+# root: INFO
+# org.springframework.web: DEBUG
+# org.springframework.web.cors: DEBUG
+# org.springframework.web.socket: DEBUG
+# org.hibernate.SQL: DEBUG
+# org.hibernate.type.descriptor.sql.BasicBinder: TRACE
+
server:
+ port: 8080
+# port: 8444
tomcat:
max-swallow-size: 200MB
+# ssl:
+# enabled: true
+# key-store-type: PKCS12
+# key-store: classpath:keystore.p12
+# key-store-password: Welcome1
+# key-alias: springboot
diff --git a/java-ai/src/main/resources/static/AIHolo.html b/java-ai/src/main/resources/static/AIHolo.html
new file mode 100644
index 0000000..41e6f73
--- /dev/null
+++ b/java-ai/src/main/resources/static/AIHolo.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+ Flags and Images
+
+
+
+
+
+
+
+
+
+


+
+
+
+
diff --git a/java-ai/src/main/resources/static/GCPVoices.html b/java-ai/src/main/resources/static/GCPVoices.html
new file mode 100644
index 0000000..4d2b20b
--- /dev/null
+++ b/java-ai/src/main/resources/static/GCPVoices.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+ Text-to-Speech Form
+
+
+
+ Text-to-Speech Configuration
+
+
+
diff --git a/java-ai/src/main/resources/static/aiholo/AIHolo-Brazil.html b/java-ai/src/main/resources/static/aiholo/AIHolo-Brazil.html
new file mode 100644
index 0000000..e8ff867
--- /dev/null
+++ b/java-ai/src/main/resources/static/aiholo/AIHolo-Brazil.html
@@ -0,0 +1,180 @@
+
+
+
+
+
+ Interactive AI Hologram With Oracle Database
+
+
+
+
+
+
+
+Oracle Database hologramas de IA interativos
+ Click "Start" and speak in Portuguese.
Click "Stop & Send" to finish and send your question.
Por exemplo "qual é o videogame mais vendido"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+


+
+
+
+
+
+
diff --git a/java-ai/src/main/resources/static/aiholo/AIHolo-Italy.html b/java-ai/src/main/resources/static/aiholo/AIHolo-Italy.html
new file mode 100644
index 0000000..e3fabb9
--- /dev/null
+++ b/java-ai/src/main/resources/static/aiholo/AIHolo-Italy.html
@@ -0,0 +1,185 @@
+
+
+
+
+
+ Interactive AI Hologram With Oracle Database
+
+
+
+
+
+
+
+Oracle Database hologramas de IA interativos
+ Click "Start" and speak in Portuguese.
Click "Stop & Send" to finish and send your question.
Por exemplo "qual é o videogame mais vendido"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+


+
+
+
+
+
+
diff --git a/java-ai/src/main/resources/static/aiholo/AIHolo-Mandarin.html b/java-ai/src/main/resources/static/aiholo/AIHolo-Mandarin.html
new file mode 100644
index 0000000..e3fabb9
--- /dev/null
+++ b/java-ai/src/main/resources/static/aiholo/AIHolo-Mandarin.html
@@ -0,0 +1,185 @@
+
+
+
+
+
+ Interactive AI Hologram With Oracle Database
+
+
+
+
+
+
+
+Oracle Database hologramas de IA interativos
+ Click "Start" and speak in Portuguese.
Click "Stop & Send" to finish and send your question.
Por exemplo "qual é o videogame mais vendido"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+


+
+
+
+
+
+
diff --git a/java-ai/src/main/resources/static/aiholo/AIHolo-OCWTokyo.html b/java-ai/src/main/resources/static/aiholo/AIHolo-OCWTokyo.html
new file mode 100644
index 0000000..d12d505
--- /dev/null
+++ b/java-ai/src/main/resources/static/aiholo/AIHolo-OCWTokyo.html
@@ -0,0 +1,191 @@
+
+
+
+
+
+ Interactive AI Hologram With Oracle Database
+
+
+
+
+
+ Oracle Databaseを使用したインタラクティブAIホログラム
+ 「スタート」をクリックし、日本語で話してください。終了して質問を送信するには「ストップ & 送信」をクリックしてください。
+
+
+
+
+
+
+
+
+
+
+
+
たとえば、「最も売れているビデオゲームは何ですか?」
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java-ai/src/main/resources/static/aiholo/AIHolo-Spain.html b/java-ai/src/main/resources/static/aiholo/AIHolo-Spain.html
new file mode 100644
index 0000000..e3fabb9
--- /dev/null
+++ b/java-ai/src/main/resources/static/aiholo/AIHolo-Spain.html
@@ -0,0 +1,185 @@
+
+
+
+
+
+ Interactive AI Hologram With Oracle Database
+
+
+
+
+
+
+
+Oracle Database hologramas de IA interativos
+ Click "Start" and speak in Portuguese.
Click "Stop & Send" to finish and send your question.
Por exemplo "qual é o videogame mais vendido"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+


+
+
+
+
+
+
diff --git a/java-ai/src/main/resources/static/aiholo/AIHolo-United-Kingdom.html b/java-ai/src/main/resources/static/aiholo/AIHolo-United-Kingdom.html
new file mode 100644
index 0000000..e3fabb9
--- /dev/null
+++ b/java-ai/src/main/resources/static/aiholo/AIHolo-United-Kingdom.html
@@ -0,0 +1,185 @@
+
+
+
+
+
+ Interactive AI Hologram With Oracle Database
+
+
+
+
+
+
+
+Oracle Database hologramas de IA interativos
+ Click "Start" and speak in Portuguese.
Click "Stop & Send" to finish and send your question.
Por exemplo "qual é o videogame mais vendido"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+


+
+
+
+
+
+
diff --git a/java-ai/src/main/resources/static/aiholo/AIHolo-languageselectable.html b/java-ai/src/main/resources/static/aiholo/AIHolo-languageselectable.html
new file mode 100644
index 0000000..c91f13f
--- /dev/null
+++ b/java-ai/src/main/resources/static/aiholo/AIHolo-languageselectable.html
@@ -0,0 +1,181 @@
+
+
+
+
+
+ Interactive AI Hologram With Oracle Database
+
+
+
+
+
+Oracle Database hologramas de IA interativos
+ Click "Start" and speak in Portuguese.
+
Click "Stop & Send" to finish and send your question.
+
Por exemplo "qual é o videogame mais vendido"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java-ai/src/main/resources/static/aiholo/index.html b/java-ai/src/main/resources/static/aiholo/index.html
new file mode 100644
index 0000000..141a17f
--- /dev/null
+++ b/java-ai/src/main/resources/static/aiholo/index.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+ Flags and Images
+
+
+
+
+
+
+
+
+
+


+
+
+
+
diff --git a/java-ai/src/main/resources/static/favicon.ico b/java-ai/src/main/resources/static/favicon.ico
new file mode 100644
index 0000000..8f9edc2
Binary files /dev/null and b/java-ai/src/main/resources/static/favicon.ico differ
diff --git a/java-ai/src/main/resources/static/faviconold.ico b/java-ai/src/main/resources/static/faviconold.ico
new file mode 100644
index 0000000..2459107
Binary files /dev/null and b/java-ai/src/main/resources/static/faviconold.ico differ
diff --git a/java-ai/src/main/resources/static/gcp-voices.json b/java-ai/src/main/resources/static/gcp-voices.json
new file mode 100644
index 0000000..5a20940
--- /dev/null
+++ b/java-ai/src/main/resources/static/gcp-voices.json
@@ -0,0 +1,4645 @@
+{
+ "voices": [
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "Aoede",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "Charon",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "Fenrir",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "Kore",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "Leda",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "Orus",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "Puck",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "Zephyr",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "af-ZA"
+ ],
+ "name": "af-ZA-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "am-ET"
+ ],
+ "name": "am-ET-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "am-ET"
+ ],
+ "name": "am-ET-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "am-ET"
+ ],
+ "name": "am-ET-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "am-ET"
+ ],
+ "name": "am-ET-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ar-XA"
+ ],
+ "name": "ar-XA-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ar-XA"
+ ],
+ "name": "ar-XA-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ar-XA"
+ ],
+ "name": "ar-XA-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ar-XA"
+ ],
+ "name": "ar-XA-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ar-XA"
+ ],
+ "name": "ar-XA-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ar-XA"
+ ],
+ "name": "ar-XA-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ar-XA"
+ ],
+ "name": "ar-XA-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ar-XA"
+ ],
+ "name": "ar-XA-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bg-BG"
+ ],
+ "name": "bg-BG-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bg-BG"
+ ],
+ "name": "bg-BG-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bn-IN"
+ ],
+ "name": "bn-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bn-IN"
+ ],
+ "name": "bn-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bn-IN"
+ ],
+ "name": "bn-IN-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bn-IN"
+ ],
+ "name": "bn-IN-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bn-IN"
+ ],
+ "name": "bn-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bn-IN"
+ ],
+ "name": "bn-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bn-IN"
+ ],
+ "name": "bn-IN-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "bn-IN"
+ ],
+ "name": "bn-IN-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ca-ES"
+ ],
+ "name": "ca-ES-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ca-ES"
+ ],
+ "name": "ca-ES-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-CN"
+ ],
+ "name": "cmn-CN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-CN"
+ ],
+ "name": "cmn-CN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-CN"
+ ],
+ "name": "cmn-CN-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-CN"
+ ],
+ "name": "cmn-CN-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-CN"
+ ],
+ "name": "cmn-CN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-CN"
+ ],
+ "name": "cmn-CN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-CN"
+ ],
+ "name": "cmn-CN-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-CN"
+ ],
+ "name": "cmn-CN-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-TW"
+ ],
+ "name": "cmn-TW-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-TW"
+ ],
+ "name": "cmn-TW-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-TW"
+ ],
+ "name": "cmn-TW-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-TW"
+ ],
+ "name": "cmn-TW-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-TW"
+ ],
+ "name": "cmn-TW-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cmn-TW"
+ ],
+ "name": "cmn-TW-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cs-CZ"
+ ],
+ "name": "cs-CZ-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cs-CZ"
+ ],
+ "name": "cs-CZ-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cs-CZ"
+ ],
+ "name": "cs-CZ-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "cs-CZ"
+ ],
+ "name": "cs-CZ-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Neural2-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Standard-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "da-DK"
+ ],
+ "name": "da-DK-Wavenet-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Neural2-G",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Neural2-H",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Polyglot-1",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Standard-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Standard-G",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Standard-H",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Studio-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Studio-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Wavenet-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Wavenet-G",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "de-DE"
+ ],
+ "name": "de-DE-Wavenet-H",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "el-GR"
+ ],
+ "name": "el-GR-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "el-GR"
+ ],
+ "name": "el-GR-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "el-GR"
+ ],
+ "name": "el-GR-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "el-GR"
+ ],
+ "name": "el-GR-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Neural2-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Neural2-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Neural2-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-News-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-News-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-News-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Polyglot-1",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-AU"
+ ],
+ "name": "en-AU-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Neural2-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Neural2-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Neural2-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Neural2-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Neural2-N",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Neural2-O",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-News-G",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-News-H",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-News-I",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-News-J",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-News-K",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-News-L",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-News-M",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Standard-N",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Standard-O",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Studio-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Studio-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Wavenet-N",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-GB"
+ ],
+ "name": "en-GB-Wavenet-O",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Neural2-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Neural2-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Neural2-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Standard-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-IN"
+ ],
+ "name": "en-IN-Wavenet-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Casual-K",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Neural2-A",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Neural2-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Neural2-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Neural2-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Neural2-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Neural2-G",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Neural2-H",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Neural2-I",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Neural2-J",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-News-K",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-News-L",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-News-N",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Polyglot-1",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-A",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-G",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-H",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-I",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Standard-J",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Studio-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Studio-Q",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-A",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-G",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-H",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-I",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "en-US"
+ ],
+ "name": "en-US-Wavenet-J",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Neural2-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Neural2-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Neural2-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Neural2-H",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Polyglot-1",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Standard-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Standard-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Standard-H",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Studio-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Studio-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Wavenet-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Wavenet-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-ES"
+ ],
+ "name": "es-ES-Wavenet-H",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Neural2-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Neural2-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-News-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-News-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-News-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-News-G",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Polyglot-1",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Studio-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "es-US"
+ ],
+ "name": "es-US-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "et-EE"
+ ],
+ "name": "et-EE-Standard-A",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "eu-ES"
+ ],
+ "name": "eu-ES-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "eu-ES"
+ ],
+ "name": "eu-ES-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fi-FI"
+ ],
+ "name": "fi-FI-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fi-FI"
+ ],
+ "name": "fi-FI-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fi-FI"
+ ],
+ "name": "fi-FI-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fi-FI"
+ ],
+ "name": "fi-FI-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-PH-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-PH-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-PH-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-PH-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-PH-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-PH-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-PH-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-PH-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-ph-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fil-PH"
+ ],
+ "name": "fil-ph-Neural2-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Neural2-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Neural2-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Neural2-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-CA"
+ ],
+ "name": "fr-CA-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Neural2-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Neural2-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Polyglot-1",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Standard-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Studio-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Studio-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "fr-FR"
+ ],
+ "name": "fr-FR-Wavenet-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gl-ES"
+ ],
+ "name": "gl-ES-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gl-ES"
+ ],
+ "name": "gl-ES-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gu-IN"
+ ],
+ "name": "gu-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gu-IN"
+ ],
+ "name": "gu-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gu-IN"
+ ],
+ "name": "gu-IN-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gu-IN"
+ ],
+ "name": "gu-IN-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gu-IN"
+ ],
+ "name": "gu-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gu-IN"
+ ],
+ "name": "gu-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gu-IN"
+ ],
+ "name": "gu-IN-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "gu-IN"
+ ],
+ "name": "gu-IN-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "he-IL"
+ ],
+ "name": "he-IL-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "he-IL"
+ ],
+ "name": "he-IL-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "he-IL"
+ ],
+ "name": "he-IL-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "he-IL"
+ ],
+ "name": "he-IL-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "he-IL"
+ ],
+ "name": "he-IL-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "he-IL"
+ ],
+ "name": "he-IL-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "he-IL"
+ ],
+ "name": "he-IL-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "he-IL"
+ ],
+ "name": "he-IL-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Neural2-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Neural2-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Neural2-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Standard-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hi-IN"
+ ],
+ "name": "hi-IN-Wavenet-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hu-HU"
+ ],
+ "name": "hu-HU-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hu-HU"
+ ],
+ "name": "hu-HU-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "hu-HU"
+ ],
+ "name": "hu-HU-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "id-ID"
+ ],
+ "name": "id-ID-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "id-ID"
+ ],
+ "name": "id-ID-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "id-ID"
+ ],
+ "name": "id-ID-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "id-ID"
+ ],
+ "name": "id-ID-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "id-ID"
+ ],
+ "name": "id-ID-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "id-ID"
+ ],
+ "name": "id-ID-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "id-ID"
+ ],
+ "name": "id-ID-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "id-ID"
+ ],
+ "name": "id-ID-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "is-IS"
+ ],
+ "name": "is-IS-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "is-IS"
+ ],
+ "name": "is-IS-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Chirp-HD-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Chirp-HD-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Chirp-HD-O",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Neural2-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Standard-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "it-IT"
+ ],
+ "name": "it-IT-Wavenet-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Neural2-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Neural2-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Neural2-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ja-JP"
+ ],
+ "name": "ja-JP-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "kn-IN"
+ ],
+ "name": "kn-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "kn-IN"
+ ],
+ "name": "kn-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "kn-IN"
+ ],
+ "name": "kn-IN-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "kn-IN"
+ ],
+ "name": "kn-IN-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "kn-IN"
+ ],
+ "name": "kn-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "kn-IN"
+ ],
+ "name": "kn-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "kn-IN"
+ ],
+ "name": "kn-IN-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "kn-IN"
+ ],
+ "name": "kn-IN-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Neural2-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Neural2-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ko-KR"
+ ],
+ "name": "ko-KR-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "lt-LT"
+ ],
+ "name": "lt-LT-Standard-A",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "lt-LT"
+ ],
+ "name": "lt-LT-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "lv-LV"
+ ],
+ "name": "lv-LV-Standard-A",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "lv-LV"
+ ],
+ "name": "lv-LV-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ml-IN"
+ ],
+ "name": "ml-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ml-IN"
+ ],
+ "name": "ml-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ml-IN"
+ ],
+ "name": "ml-IN-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ml-IN"
+ ],
+ "name": "ml-IN-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ml-IN"
+ ],
+ "name": "ml-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ml-IN"
+ ],
+ "name": "ml-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ml-IN"
+ ],
+ "name": "ml-IN-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ml-IN"
+ ],
+ "name": "ml-IN-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "mr-IN"
+ ],
+ "name": "mr-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "mr-IN"
+ ],
+ "name": "mr-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "mr-IN"
+ ],
+ "name": "mr-IN-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "mr-IN"
+ ],
+ "name": "mr-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "mr-IN"
+ ],
+ "name": "mr-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "mr-IN"
+ ],
+ "name": "mr-IN-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ms-MY"
+ ],
+ "name": "ms-MY-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ms-MY"
+ ],
+ "name": "ms-MY-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ms-MY"
+ ],
+ "name": "ms-MY-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ms-MY"
+ ],
+ "name": "ms-MY-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ms-MY"
+ ],
+ "name": "ms-MY-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ms-MY"
+ ],
+ "name": "ms-MY-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ms-MY"
+ ],
+ "name": "ms-MY-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ms-MY"
+ ],
+ "name": "ms-MY-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Standard-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nb-NO"
+ ],
+ "name": "nb-NO-Wavenet-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-BE"
+ ],
+ "name": "nl-BE-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-BE"
+ ],
+ "name": "nl-BE-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-BE"
+ ],
+ "name": "nl-BE-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-BE"
+ ],
+ "name": "nl-BE-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-BE"
+ ],
+ "name": "nl-BE-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-BE"
+ ],
+ "name": "nl-BE-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-BE"
+ ],
+ "name": "nl-BE-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-BE"
+ ],
+ "name": "nl-BE-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Standard-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "nl-NL"
+ ],
+ "name": "nl-NL-Wavenet-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pa-IN"
+ ],
+ "name": "pa-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pa-IN"
+ ],
+ "name": "pa-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pa-IN"
+ ],
+ "name": "pa-IN-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pa-IN"
+ ],
+ "name": "pa-IN-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pa-IN"
+ ],
+ "name": "pa-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pa-IN"
+ ],
+ "name": "pa-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pa-IN"
+ ],
+ "name": "pa-IN-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pa-IN"
+ ],
+ "name": "pa-IN-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Standard-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pl-PL"
+ ],
+ "name": "pl-PL-Wavenet-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Neural2-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Neural2-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Standard-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-BR"
+ ],
+ "name": "pt-BR-Wavenet-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Standard-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Standard-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "pt-PT"
+ ],
+ "name": "pt-PT-Wavenet-F",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ro-RO"
+ ],
+ "name": "ro-RO-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ro-RO"
+ ],
+ "name": "ro-RO-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ro-RO"
+ ],
+ "name": "ro-RO-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ro-RO"
+ ],
+ "name": "ro-RO-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Standard-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ru-RU"
+ ],
+ "name": "ru-RU-Wavenet-E",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sk-SK"
+ ],
+ "name": "sk-SK-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sk-SK"
+ ],
+ "name": "sk-SK-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sk-SK"
+ ],
+ "name": "sk-SK-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sk-SK"
+ ],
+ "name": "sk-SK-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sr-RS"
+ ],
+ "name": "sr-RS-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Standard-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Standard-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Standard-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Standard-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Wavenet-B",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Wavenet-C",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Wavenet-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Wavenet-F",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "sv-SE"
+ ],
+ "name": "sv-SE-Wavenet-G",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ta-IN"
+ ],
+ "name": "ta-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ta-IN"
+ ],
+ "name": "ta-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ta-IN"
+ ],
+ "name": "ta-IN-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ta-IN"
+ ],
+ "name": "ta-IN-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ta-IN"
+ ],
+ "name": "ta-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ta-IN"
+ ],
+ "name": "ta-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ta-IN"
+ ],
+ "name": "ta-IN-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ta-IN"
+ ],
+ "name": "ta-IN-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "te-IN"
+ ],
+ "name": "te-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "te-IN"
+ ],
+ "name": "te-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "te-IN"
+ ],
+ "name": "te-IN-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "te-IN"
+ ],
+ "name": "te-IN-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "th-TH"
+ ],
+ "name": "th-TH-Neural2-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "th-TH"
+ ],
+ "name": "th-TH-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Standard-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Standard-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Wavenet-D",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "tr-TR"
+ ],
+ "name": "tr-TR-Wavenet-E",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "uk-UA"
+ ],
+ "name": "uk-UA-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "uk-UA"
+ ],
+ "name": "uk-UA-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ur-IN"
+ ],
+ "name": "ur-IN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ur-IN"
+ ],
+ "name": "ur-IN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ur-IN"
+ ],
+ "name": "ur-IN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "ur-IN"
+ ],
+ "name": "ur-IN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Neural2-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Neural2-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Wavenet-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Wavenet-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Wavenet-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "vi-VN"
+ ],
+ "name": "vi-VN-Wavenet-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "yue-HK"
+ ],
+ "name": "yue-HK-Standard-A",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "yue-HK"
+ ],
+ "name": "yue-HK-Standard-B",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "yue-HK"
+ ],
+ "name": "yue-HK-Standard-C",
+ "ssmlGender": "FEMALE",
+ "naturalSampleRateHertz": 24000
+ },
+ {
+ "languageCodes": [
+ "yue-HK"
+ ],
+ "name": "yue-HK-Standard-D",
+ "ssmlGender": "MALE",
+ "naturalSampleRateHertz": 24000
+ }
+ ]
+ }
+
\ No newline at end of file
diff --git a/java-ai/src/main/resources/static/images/aiholoarch.png b/java-ai/src/main/resources/static/images/aiholoarch.png
new file mode 100644
index 0000000..fe761cc
Binary files /dev/null and b/java-ai/src/main/resources/static/images/aiholoarch.png differ
diff --git a/java-ai/src/main/resources/static/digitaldouble_QRCode.png b/java-ai/src/main/resources/static/images/digitaldouble_QRCode.png
similarity index 100%
rename from java-ai/src/main/resources/static/digitaldouble_QRCode.png
rename to java-ai/src/main/resources/static/images/digitaldouble_QRCode.png
diff --git a/java-ai/src/main/resources/static/images/flags/Brazil-Flag.png b/java-ai/src/main/resources/static/images/flags/Brazil-Flag.png
new file mode 100755
index 0000000..b3e8fb0
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/Brazil-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/China-Flag.png b/java-ai/src/main/resources/static/images/flags/China-Flag.png
new file mode 100755
index 0000000..01d8ec0
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/China-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/Germany-Flag.png b/java-ai/src/main/resources/static/images/flags/Germany-Flag.png
new file mode 100755
index 0000000..89dc2b2
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/Germany-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/India-Flag.png b/java-ai/src/main/resources/static/images/flags/India-Flag.png
new file mode 100755
index 0000000..9365ae5
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/India-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/Israel-Flag.png b/java-ai/src/main/resources/static/images/flags/Israel-Flag.png
new file mode 100755
index 0000000..44e0ce5
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/Israel-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/Italy-Flag.png b/java-ai/src/main/resources/static/images/flags/Italy-Flag.png
new file mode 100755
index 0000000..1660abb
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/Italy-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/Japan-Flag.png b/java-ai/src/main/resources/static/images/flags/Japan-Flag.png
new file mode 100755
index 0000000..070a662
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/Japan-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/Spain-Flag.png b/java-ai/src/main/resources/static/images/flags/Spain-Flag.png
new file mode 100755
index 0000000..bbf6686
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/Spain-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/United-Arab-Emirates-Flag.png b/java-ai/src/main/resources/static/images/flags/United-Arab-Emirates-Flag.png
new file mode 100755
index 0000000..b0ef650
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/United-Arab-Emirates-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/United-Kingdom-Flag.png b/java-ai/src/main/resources/static/images/flags/United-Kingdom-Flag.png
new file mode 100755
index 0000000..1f9d88c
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/United-Kingdom-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/flags/United-States-Flag.png b/java-ai/src/main/resources/static/images/flags/United-States-Flag.png
new file mode 100755
index 0000000..7ca4218
Binary files /dev/null and b/java-ai/src/main/resources/static/images/flags/United-States-Flag.png differ
diff --git a/java-ai/src/main/resources/static/images/oracle23ai.png b/java-ai/src/main/resources/static/images/oracle23ai.png
new file mode 100644
index 0000000..788b182
Binary files /dev/null and b/java-ai/src/main/resources/static/images/oracle23ai.png differ
diff --git a/java-ai/src/main/resources/static/images/oracle23aiblock.webp b/java-ai/src/main/resources/static/images/oracle23aiblock.webp
new file mode 100644
index 0000000..de96fc9
Binary files /dev/null and b/java-ai/src/main/resources/static/images/oracle23aiblock.webp differ
diff --git a/java-ai/src/main/resources/static/images/oracleconverged23ai.webp b/java-ai/src/main/resources/static/images/oracleconverged23ai.webp
new file mode 100644
index 0000000..cd982bb
Binary files /dev/null and b/java-ai/src/main/resources/static/images/oracleconverged23ai.webp differ
diff --git a/java-gcpspeechai/pom.xml b/java-gcpspeechai/pom.xml
deleted file mode 100644
index b591b42..0000000
--- a/java-gcpspeechai/pom.xml
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 3.3.1
-
-
- oracleai
- oracleai-gcpspeechai
- 0.0.1-SNAPSHOT
- oracleai
- Oracle AI Demos
-
-
- 3.52.1
-
-
-
-
- com.google.cloud
- libraries-bom
- 26.51.0
- pom
- import
-
-
-
-
-
-
- com.google.cloud
- google-cloud-speech
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-thymeleaf
-
-
- org.json
- json
- 20231013
-
-
- commons-io
- commons-io
- 2.8.0
-
-
- com.oracle.cloud.spring
- spring-cloud-oci-starter
- 1.3.0
-
-
- com.oracle.oci.sdk
- oci-java-sdk-common-httpclient-jersey
- ${oci.sdk.version}
-
-
- com.oracle.oci.sdk
- oci-java-sdk-generativeaiinference
- ${oci.sdk.version}
-
-
- com.oracle.oci.sdk
- oci-java-sdk-aivision
- ${oci.sdk.version}
-
-
- com.oracle.oci.sdk
- oci-java-sdk-aispeech
- ${oci.sdk.version}
-
-
- com.oracle.oci.sdk
- oci-java-sdk-ailanguage
- ${oci.sdk.version}
-
-
- com.oracle.oci.sdk
- oci-java-sdk-objectstorage
- ${oci.sdk.version}
-
-
-
- org.slf4j
- slf4j-simple
- 2.0.6
-
-
- javax.xml.bind
- jaxb-api
- 2.4.0-b180830.0359
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
-
-
-
- org.projectlombok
- lombok
-
-
-
- com.theokanning.openai-gpt3-java
- service
- 0.12.0
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 1111
-
-
-
-
-
-
diff --git a/java-gcpspeechai/src/main/java/oracleai/AIApplication.java b/java-gcpspeechai/src/main/java/oracleai/AIApplication.java
deleted file mode 100644
index 96ce305..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/AIApplication.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package oracleai;
-
-import com.oracle.bmc.retrier.RetryConfiguration;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-
-@SpringBootApplication
-public class AIApplication {
-
- public static final String COMPARTMENT_ID = System.getenv("COMPARTMENT_ID");
- public static final String OBJECTSTORAGE_NAMESPACE = System.getenv("OBJECTSTORAGE_NAMESPACE");
- public static final String OBJECTSTORAGE_BUCKETNAME = System.getenv("OBJECTSTORAGE_BUCKETNAME");
- public static final String ORDS_ENDPOINT_URL = System.getenv("ORDS_ENDPOINT_URL");
- public static final String ORDS_OMLOPSENDPOINT_URL= System.getenv("ORDS_ENDPOINT_URL") + "/omlopsuser/";
- public static final String OCI_VISION_SERVICE_ENDPOINT = System.getenv("OCI_VISION_SERVICE_ENDPOINT");
- public static final String OCICONFIG_FILE = System.getenv("OCICONFIG_FILE");
- public static final String OCICONFIG_PROFILE = System.getenv("OCICONFIG_PROFILE");
- public static final String DIGITAL_DOUBLES_IMAGES_ENDPOINT = System.getenv("DIGITAL_DOUBLES_IMAGES_ENDPOINT");
- public static final String THREEDEY = "msy_mykey";
-
- static {
- System.out.println("AIApplication.static initializer COMPARTMENT_ID:" + COMPARTMENT_ID);
- System.out.println("AIApplication.static initializer OBJECTSTORAGE_NAMESPACE:" + OBJECTSTORAGE_NAMESPACE);
- System.out.println("AIApplication.static initializer OBJECTSTORAGE_BUCKETNAME:" + OBJECTSTORAGE_BUCKETNAME);
- System.out.println("AIApplication.static initializer ORDS_ENDPOINT_URL:" + ORDS_ENDPOINT_URL);
- System.out.println("AIApplication.static initializer OCI_VISION_SERVICE_ENDPOINT:" + OCI_VISION_SERVICE_ENDPOINT);
- }
-
- public static void main(String[] args) {
-// RetryConfiguration retryConfiguration = RetryConfiguration.builder()
-// .terminationStrategy(RetryUtils.createExponentialBackoffStrategy(500, 5)) // Configure limits
-// .build();
- SpringApplication.run(AIApplication.class, args);
- }
-
-}
diff --git a/java-gcpspeechai/src/main/java/oracleai/ExplainAndAdviseOnHealthTestResults.java b/java-gcpspeechai/src/main/java/oracleai/ExplainAndAdviseOnHealthTestResults.java
deleted file mode 100644
index f07506f..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/ExplainAndAdviseOnHealthTestResults.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package oracleai;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.oracle.bmc.aivision.model.ImageTextDetectionFeature;
-import com.oracle.bmc.generativeaiinference.model.OnDemandServingMode;
-import oracleai.services.ORDSCalls;
-import oracleai.services.OracleGenAI;
-import oracleai.services.OracleObjectStore;
-import oracleai.services.OracleVisionAI;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import org.springframework.ui.Model;
-
-@Controller
-@RequestMapping("/health")
-public class ExplainAndAdviseOnHealthTestResults {
-
-
- @PostMapping("/analyzedoc")
- public String analyzedoc(@RequestParam("file") MultipartFile multipartFile,
- @RequestParam("opts") String opts, Model model)
- throws Exception {
- System.out.println("analyzedocmultipartFile = " + multipartFile + ", opts = " + opts);
- String concatenatedText;
- if (opts.equals("inline")) {
- String objectDetectionResults = OracleVisionAI.processImage(
- multipartFile.getBytes(), ImageTextDetectionFeature.builder().build());
- OracleVisionAI.ImageData imageData =
- new ObjectMapper().readValue(objectDetectionResults, OracleVisionAI.ImageData.class);
- concatenatedText = concatenateText(imageData);
- } else {
- OracleObjectStore.sendToObjectStorage(multipartFile.getOriginalFilename(), multipartFile.getInputStream());
- concatenatedText = ORDSCalls.analyzeImageInObjectStore(
- AIApplication.ORDS_ENDPOINT_URL + "VISIONAI_TEXTDETECTION/",
- AIApplication.OCI_VISION_SERVICE_ENDPOINT,
- AIApplication.COMPARTMENT_ID,
- AIApplication.OBJECTSTORAGE_BUCKETNAME,
- AIApplication.OBJECTSTORAGE_NAMESPACE,
- multipartFile.getOriginalFilename(), //"objectdetectiontestimage.jpg"
- "TEXT_DETECTION",
- "MedicalReportSummary");
- }
- System.out.println(concatenatedText);
- System.out.println("analyzedoc fullText = " + concatenatedText);
- OnDemandServingMode chatServingMode = OnDemandServingMode.builder()
- .modelId("cohere.command-r-16k")
- .build();
- String explanationOfResults =
- OracleGenAI.builder().compartment(AIApplication.COMPARTMENT_ID)
- .servingMode(chatServingMode)
- .build().chat("explain these test results in simple terms, in less than 100 words, " +
- "and tell me what should I do to get better results: \"" + concatenatedText + "\"");
- System.out.println("ExplainAndAdviseOnHealthTestResults.analyzedoc explanationOfResults:" + explanationOfResults);
- model.addAttribute("results", "SUMMARY WITH ADVICE: " + explanationOfResults +
- " ...This is of course not a substitute for actual medical advice from a professional.");
- return "resultspage";
- }
-
- private static String concatenateText(OracleVisionAI.ImageData imageData) {
- if (imageData.getImageText() == null || imageData.getImageText().getWords() == null) return "";
- StringBuilder sb = new StringBuilder();
- for (OracleVisionAI.Word word : imageData.getImageText().getWords()) {
- sb.append(word.getText()).append(" ");
- }
- return sb.toString().trim();
- }
-}
diff --git a/java-gcpspeechai/src/main/java/oracleai/FaceRecognition.java b/java-gcpspeechai/src/main/java/oracleai/FaceRecognition.java
deleted file mode 100644
index 3bc61f0..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/FaceRecognition.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package oracleai;
-
-import com.oracle.bmc.aivision.model.FaceDetectionFeature;
-import oracleai.services.OracleVisionAI;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.multipart.MultipartFile;
-
-
-@Controller
-@RequestMapping("/facerecognition")
-public class FaceRecognition {
-
-
- @PostMapping("/facerecognition")
- public String facerecognition(@RequestParam("file") MultipartFile multipartFile, Model model)
- throws Exception {
- model.addAttribute("results",
- OracleVisionAI.processImage(multipartFile.getBytes(), FaceDetectionFeature.builder().shouldReturnLandmarks(true).build()));
- return "resultspage";
- }
- }
-
-/**
- * {
- * "ontologyClasses": [],
- * "detectedFaces": [
- * {
- * "confidence": 0.9453162,
- * "boundingPolygon": {
- * "normalizedVertices": [
- * {
- * "x": 0.43885306576845223,
- * "y": 0.33600531005859374
- * },
- * {
- * "x": 0.5433995575670001,
- * "y": 0.33600531005859374
- * },
- * {
- * "x": 0.5433995575670001,
- * "y": 0.404624267578125
- * },
- * {
- * "x": 0.43885306576845223,
- * "y": 0.404624267578125
- * }
- * ]
- * },
- * "qualityScore": 0.887661,
- * "landmarks": [
- * {
- * "type": "LEFT_EYE",
- * "x": 0.46573874,
- * "y": 0.36125
- * },
- * {
- * "type": "RIGHT_EYE",
- * "x": 0.5149893,
- * "y": 0.36175
- * },
- * {
- * "type": "NOSE_TIP",
- * "x": 0.4898287,
- * "y": 0.37575
- * },
- * {
- * "type": "LEFT_EDGE_OF_MOUTH",
- * "x": 0.46734476,
- * "y": 0.3845
- * },
- * {
- * "type": "RIGHT_EDGE_OF_MOUTH",
- * "x": 0.51338327,
- * "y": 0.38475
- * }
- * ]
- * }
- * ],
- * "faceDetectionModelVersion": "1.0.29",
- * "errors": []
- * }
- */
-
diff --git a/java-gcpspeechai/src/main/java/oracleai/GenerateAPictureStoryUsingOnlySpeech.java b/java-gcpspeechai/src/main/java/oracleai/GenerateAPictureStoryUsingOnlySpeech.java
deleted file mode 100644
index 47f2fdd..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/GenerateAPictureStoryUsingOnlySpeech.java
+++ /dev/null
@@ -1,189 +0,0 @@
-package oracleai;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import oracleai.services.ImageGeneration;
-import oracleai.services.OracleObjectStore;
-import oracleai.services.OracleSpeechAI;
-import org.jetbrains.annotations.NotNull;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.sound.sampled.*;
-import java.io.*;
-import java.util.*;
-import java.util.stream.Collectors;
-
-@Controller
-@RequestMapping("/picturestory")
-public class GenerateAPictureStoryUsingOnlySpeech {
-
- static List imageLocations = new ArrayList();
-
- @GetMapping("/reset")
- public String reset(Model model) {
- imageLocations = new ArrayList();
- model.addAttribute("results", "story board cleared successfully");
- return "resultspage";
- }
-
- @PostMapping("/picturestory")
- public String picturestory(@RequestParam("opts") String opts,
- @RequestParam("genopts") String genopts,
- @RequestParam("file") MultipartFile multipartFile,
- Model model) throws Exception {
- if (opts.equals("fileaudio") ) return fileaudio(genopts, multipartFile, model);
- else return liveaudio(genopts, model);
- }
-
- @NotNull
- private String fileaudio(String genopts, MultipartFile multipartFile, Model model) throws Exception {
- OracleObjectStore.sendToObjectStorage(multipartFile.getOriginalFilename(), multipartFile.getInputStream());
- String transcriptionJobId = OracleSpeechAI.getTranscriptFromOCISpeech(multipartFile.getOriginalFilename());
- System.out.println("transcriptionJobId: " + transcriptionJobId);
- String jsonTranscriptFromObjectStorage =
- OracleObjectStore.getFromObjectStorage(transcriptionJobId,
- AIApplication.OBJECTSTORAGE_NAMESPACE + "_" +
- AIApplication.OBJECTSTORAGE_BUCKETNAME + "_" +
- multipartFile.getOriginalFilename() + ".json");
- System.out.println("jsonTranscriptFromObjectStorage: " + jsonTranscriptFromObjectStorage);
- String pictureDescription = getConcatenatedTokens(jsonTranscriptFromObjectStorage);
- imageLocations.add(ImageGeneration.imagegeneration(pictureDescription + " " + genopts));
- model.addAttribute("imageLocations", imageLocations.toArray(new String[0]));
- return "resultswithimages";
- }
-
- public String liveaudio(String genopts, Model model) throws Exception {
- AudioFormat format =
- new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100.0f, 16, 1,
- (16 / 8) * 1, 44100.0f, true);
- SoundRecorder soundRecorder = new SoundRecorder();
- soundRecorder.build(format);
- System.out.println("Start recording ....");
- soundRecorder.start();
- Thread.sleep(8000);
- soundRecorder.stop();
- System.out.println("Stopped recording ....");
- Thread.sleep(5000); //give the process time
- String name = "AISoundClip";
- AudioFileFormat.Type fileType = AudioFileFormat.Type.WAVE;
- AudioInputStream audioInputStream = soundRecorder.audioInputStream;
- System.out.println("Saving...");
- File file = new File(name + "." + fileType.getExtension());
- audioInputStream.reset();
- AudioSystem.write(audioInputStream, fileType, file);
- System.out.println("Saved " + file.getAbsolutePath());
- OracleObjectStore.sendToObjectStorage(file.getName(), new FileInputStream(file));
- String transcriptionJobId = OracleSpeechAI.getTranscriptFromOCISpeech(file.getName());
- System.out.println("transcriptionJobId: " + transcriptionJobId);
- String jsonTranscriptFromObjectStorage =
- OracleObjectStore.getFromObjectStorage(transcriptionJobId,
- AIApplication.OBJECTSTORAGE_NAMESPACE + "_" +
- AIApplication.OBJECTSTORAGE_BUCKETNAME + "_" + file.getName() + ".json");
- System.out.println("jsonTranscriptFromObjectStorage: " + jsonTranscriptFromObjectStorage);
- String pictureDescription = getConcatenatedTokens(jsonTranscriptFromObjectStorage);
- imageLocations.add(ImageGeneration.imagegeneration(pictureDescription + " " + genopts));
- model.addAttribute("imageLocations", imageLocations.toArray(new String[0]));
- return "resultswithimages";
- }
-
- public String getConcatenatedTokens(String json) {
- ObjectMapper objectMapper = new ObjectMapper();
- try {
- OracleSpeechAI.TranscriptionResponse response =
- objectMapper.readValue(json, OracleSpeechAI.TranscriptionResponse.class);
- return response.getTranscriptions().stream()
- .flatMap(transcription -> transcription.getTokens().stream())
- .map(OracleSpeechAI.TranscriptionResponse.Transcription.Token::getToken)
- .collect(Collectors.joining(" "));
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- return null;
- }
- }
-
- public class SoundRecorder implements Runnable {
- AudioInputStream audioInputStream;
- private AudioFormat format;
- public Thread thread;
-
-
- public SoundRecorder build(AudioFormat format) {
- this.format = format;
- return this;
- }
-
- public void start() {
- thread = new Thread(this);
- thread.start();
- }
-
- public void stop() {
- thread = null;
- }
-
- @Override
- public void run() {
- try (final ByteArrayOutputStream out = new ByteArrayOutputStream();
- final TargetDataLine line = getTargetDataLineForRecord();) {
- int frameSizeInBytes = format.getFrameSize();
- int bufferLengthInFrames = line.getBufferSize() / 8;
- final int bufferLengthInBytes = bufferLengthInFrames * frameSizeInBytes;
- buildByteOutputStream(out, line, frameSizeInBytes, bufferLengthInBytes);
- this.audioInputStream = new AudioInputStream(line);
- setAudioInputStream(convertToAudioIStream(out, frameSizeInBytes));
- audioInputStream.reset();
- } catch (IOException ex) {
- ex.printStackTrace();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
-
- public void buildByteOutputStream(final ByteArrayOutputStream out,
- final TargetDataLine line, int frameSizeInBytes,
- final int bufferLengthInBytes) throws IOException {
- final byte[] data = new byte[bufferLengthInBytes];
- int numBytesRead;
-
- line.start();
- while (thread != null) {
- if ((numBytesRead = line.read(data, 0, bufferLengthInBytes)) == -1) {
- break;
- }
- out.write(data, 0, numBytesRead);
- }
- }
-
- private void setAudioInputStream(AudioInputStream aStream) {
- this.audioInputStream = aStream;
- }
-
- public AudioInputStream convertToAudioIStream(final ByteArrayOutputStream out, int frameSizeInBytes) {
- byte[] audioBytes = out.toByteArray();
- AudioInputStream audioStream =
- new AudioInputStream(new ByteArrayInputStream(audioBytes), format,
- audioBytes.length / frameSizeInBytes);
- System.out.println("Recording finished");
- return audioStream;
- }
-
- public TargetDataLine getTargetDataLineForRecord() {
- TargetDataLine line;
- DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
- if (!AudioSystem.isLineSupported(info)) {
- throw new UnsupportedOperationException("Line not supported");
- }
- try {
- line = (TargetDataLine) AudioSystem.getLine(info);
- line.open(format, line.getBufferSize());
- } catch (final Exception ex) {
- return null;
- }
- return line;
- }
- }
-
-}
diff --git a/java-gcpspeechai/src/main/java/oracleai/InfiniteStreamRecognize.java b/java-gcpspeechai/src/main/java/oracleai/InfiniteStreamRecognize.java
deleted file mode 100644
index 506582c..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/InfiniteStreamRecognize.java
+++ /dev/null
@@ -1,284 +0,0 @@
-package oracleai;
-
-
-import com.google.api.gax.rpc.ClientStream;
-import com.google.api.gax.rpc.ResponseObserver;
-import com.google.api.gax.rpc.StreamController;
-import com.google.cloud.speech.v1p1beta1.RecognitionConfig;
-import com.google.cloud.speech.v1p1beta1.SpeechClient;
-import com.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative;
-import com.google.cloud.speech.v1p1beta1.StreamingRecognitionConfig;
-import com.google.cloud.speech.v1p1beta1.StreamingRecognitionResult;
-import com.google.cloud.speech.v1p1beta1.StreamingRecognizeRequest;
-import com.google.cloud.speech.v1p1beta1.StreamingRecognizeResponse;
-import com.google.protobuf.ByteString;
-import com.google.protobuf.Duration;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.TimeUnit;
-import javax.sound.sampled.AudioFormat;
-import javax.sound.sampled.AudioSystem;
-import javax.sound.sampled.DataLine;
-import javax.sound.sampled.DataLine.Info;
-import javax.sound.sampled.TargetDataLine;
-
-public class InfiniteStreamRecognize {
-
- private static final int STREAMING_LIMIT = 290000; // ~5 minutes
-
- public static final String RED = "\033[0;31m";
- public static final String GREEN = "\033[0;32m";
- public static final String YELLOW = "\033[0;33m";
-
- // Creating shared object
- private static volatile BlockingQueue sharedQueue = new LinkedBlockingQueue();
- private static TargetDataLine targetDataLine;
- private static int BYTES_PER_BUFFER = 6400; // buffer size in bytes
-
- private static int restartCounter = 0;
- private static ArrayList audioInput = new ArrayList();
- private static ArrayList lastAudioInput = new ArrayList();
- private static int resultEndTimeInMS = 0;
- private static int isFinalEndTime = 0;
- private static int finalRequestEndTime = 0;
- private static boolean newStream = true;
- private static double bridgingOffset = 0;
- private static boolean lastTranscriptWasFinal = false;
- private static StreamController referenceToStreamController;
- private static ByteString tempByteString;
-
- public static void main(String... args) {
- InfiniteStreamRecognizeOptions options = InfiniteStreamRecognizeOptions.fromFlags(args);
- if (options == null) {
- // Could not parse.
- System.out.println("Failed to parse options.");
- System.exit(1);
- }
-
- try {
- infiniteStreamingRecognize(options.langCode);
- } catch (Exception e) {
- System.out.println("Exception caught: " + e);
- }
- }
-
- public static String convertMillisToDate(double milliSeconds) {
- long millis = (long) milliSeconds;
- DecimalFormat format = new DecimalFormat();
- format.setMinimumIntegerDigits(2);
- return String.format(
- "%s:%s /",
- format.format(TimeUnit.MILLISECONDS.toMinutes(millis)),
- format.format(
- TimeUnit.MILLISECONDS.toSeconds(millis)
- - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))));
- }
-
- /** Performs infinite streaming speech recognition */
- public static void infiniteStreamingRecognize(String languageCode) throws Exception {
-
- // Microphone Input buffering
- class MicBuffer implements Runnable {
-
- @Override
- public void run() {
- System.out.println(YELLOW);
- System.out.println("Start speaking...Press Ctrl-C to stop");
- targetDataLine.start();
- byte[] data = new byte[BYTES_PER_BUFFER];
- while (targetDataLine.isOpen()) {
- try {
- int numBytesRead = targetDataLine.read(data, 0, data.length);
- if ((numBytesRead <= 0) && (targetDataLine.isOpen())) {
- continue;
- }
- sharedQueue.put(data.clone());
- } catch (InterruptedException e) {
- System.out.println("Microphone input buffering interrupted : " + e.getMessage());
- }
- }
- }
- }
-
- // Creating microphone input buffer thread
- MicBuffer micrunnable = new MicBuffer();
- Thread micThread = new Thread(micrunnable);
- ResponseObserver responseObserver = null;
- try (SpeechClient client = SpeechClient.create()) {
- ClientStream clientStream;
- responseObserver =
- new ResponseObserver() {
-
- ArrayList responses = new ArrayList<>();
-
- public void onStart(StreamController controller) {
- referenceToStreamController = controller;
- }
-
- public void onResponse(StreamingRecognizeResponse response) {
- responses.add(response);
- StreamingRecognitionResult result = response.getResultsList().get(0);
- Duration resultEndTime = result.getResultEndTime();
- resultEndTimeInMS =
- (int)
- ((resultEndTime.getSeconds() * 1000) + (resultEndTime.getNanos() / 1000000));
- double correctedTime =
- resultEndTimeInMS - bridgingOffset + (STREAMING_LIMIT * restartCounter);
-
- SpeechRecognitionAlternative alternative = result.getAlternativesList().get(0);
- if (result.getIsFinal()) {
- System.out.print(GREEN);
- System.out.print("\033[2K\r");
- System.out.printf(
- "%s: %s [confidence: %.2f]\n",
- convertMillisToDate(correctedTime),
- alternative.getTranscript(),
- alternative.getConfidence());
- isFinalEndTime = resultEndTimeInMS;
- lastTranscriptWasFinal = true;
- } else {
- System.out.print(RED);
- System.out.print("\033[2K\r");
- System.out.printf(
- "%s: %s", convertMillisToDate(correctedTime), alternative.getTranscript());
- lastTranscriptWasFinal = false;
- }
- }
-
- public void onComplete() {}
-
- public void onError(Throwable t) {}
- };
- clientStream = client.streamingRecognizeCallable().splitCall(responseObserver);
-
- RecognitionConfig recognitionConfig =
- RecognitionConfig.newBuilder()
- .setEncoding(RecognitionConfig.AudioEncoding.LINEAR16)
- .setLanguageCode(languageCode)
- .setSampleRateHertz(16000)
- .build();
-
- StreamingRecognitionConfig streamingRecognitionConfig =
- StreamingRecognitionConfig.newBuilder()
- .setConfig(recognitionConfig)
- .setInterimResults(true)
- .build();
-
- StreamingRecognizeRequest request =
- StreamingRecognizeRequest.newBuilder()
- .setStreamingConfig(streamingRecognitionConfig)
- .build(); // The first request in a streaming call has to be a config
-
- clientStream.send(request);
-
- try {
- // SampleRate:16000Hz, SampleSizeInBits: 16, Number of channels: 1, Signed: true,
- // bigEndian: false
- AudioFormat audioFormat = new AudioFormat(16000, 16, 1, true, false);
- DataLine.Info targetInfo =
- new Info(
- TargetDataLine.class,
- audioFormat); // Set the system information to read from the microphone audio
- // stream
-
- if (!AudioSystem.isLineSupported(targetInfo)) {
- System.out.println("Microphone not supported");
- System.exit(0);
- }
- // Target data line captures the audio stream the microphone produces.
- targetDataLine = (TargetDataLine) AudioSystem.getLine(targetInfo);
- targetDataLine.open(audioFormat);
- micThread.start();
-
- long startTime = System.currentTimeMillis();
-
- while (true) {
-
- long estimatedTime = System.currentTimeMillis() - startTime;
-
- if (estimatedTime >= STREAMING_LIMIT) {
-
- clientStream.closeSend();
- referenceToStreamController.cancel(); // remove Observer
-
- if (resultEndTimeInMS > 0) {
- finalRequestEndTime = isFinalEndTime;
- }
- resultEndTimeInMS = 0;
-
- lastAudioInput = null;
- lastAudioInput = audioInput;
- audioInput = new ArrayList();
-
- restartCounter++;
-
- if (!lastTranscriptWasFinal) {
- System.out.print('\n');
- }
-
- newStream = true;
-
- clientStream = client.streamingRecognizeCallable().splitCall(responseObserver);
-
- request =
- StreamingRecognizeRequest.newBuilder()
- .setStreamingConfig(streamingRecognitionConfig)
- .build();
-
- System.out.println(YELLOW);
- System.out.printf("%d: RESTARTING REQUEST\n", restartCounter * STREAMING_LIMIT);
-
- startTime = System.currentTimeMillis();
-
- } else {
-
- if ((newStream) && (lastAudioInput.size() > 0)) {
- // if this is the first audio from a new request
- // calculate amount of unfinalized audio from last request
- // resend the audio to the speech client before incoming audio
- double chunkTime = STREAMING_LIMIT / lastAudioInput.size();
- // ms length of each chunk in previous request audio arrayList
- if (chunkTime != 0) {
- if (bridgingOffset < 0) {
- // bridging Offset accounts for time of resent audio
- // calculated from last request
- bridgingOffset = 0;
- }
- if (bridgingOffset > finalRequestEndTime) {
- bridgingOffset = finalRequestEndTime;
- }
- int chunksFromMs =
- (int) Math.floor((finalRequestEndTime - bridgingOffset) / chunkTime);
- // chunks from MS is number of chunks to resend
- bridgingOffset =
- (int) Math.floor((lastAudioInput.size() - chunksFromMs) * chunkTime);
- // set bridging offset for next request
- for (int i = chunksFromMs; i < lastAudioInput.size(); i++) {
- request =
- StreamingRecognizeRequest.newBuilder()
- .setAudioContent(lastAudioInput.get(i))
- .build();
- clientStream.send(request);
- }
- }
- newStream = false;
- }
-
- tempByteString = ByteString.copyFrom(sharedQueue.take());
-
- request =
- StreamingRecognizeRequest.newBuilder().setAudioContent(tempByteString).build();
-
- audioInput.add(tempByteString);
- }
-
- clientStream.send(request);
- }
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- }
-}
diff --git a/java-gcpspeechai/src/main/java/oracleai/TextSearch.java b/java-gcpspeechai/src/main/java/oracleai/TextSearch.java
deleted file mode 100644
index 1b64898..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/TextSearch.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package oracleai;
-
-
-import oracleai.services.ORDSCalls;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-
-@Controller
-@RequestMapping("/textsearch")
-public class TextSearch {
-
- @PostMapping("/textsearch")
- public String textsearch(@RequestParam("sql") String sql, Model model) {
- String explanationOfResults = ORDSCalls.executeTextSearchContains(
- AIApplication.ORDS_ENDPOINT_URL + "VISIONAI_RESULTS_TEXT_SEARCH/", sql);
- model.addAttribute("results", explanationOfResults);
- return "resultspage";
- }
-
-}
diff --git a/java-gcpspeechai/src/main/java/oracleai/UploadDownloadImage.java b/java-gcpspeechai/src/main/java/oracleai/UploadDownloadImage.java
deleted file mode 100644
index fd566a8..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/UploadDownloadImage.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package oracleai;
-
-import oracleai.digitaldouble.ImageStore;
-import oracleai.services.ORDSCalls;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-
-@Controller
-@RequestMapping("/transferimage")
-public class UploadDownloadImage {
-
- @PostMapping("/uploadimage")
- public String uploadImage(@RequestParam("image") MultipartFile image, Model model) {
- ORDSCalls.uploadImage(image);
- System.out.println("Image upload complete for: " + image.getOriginalFilename());
- ImageStore[] imageStores = ORDSCalls.getImageStoreData();
- model.addAttribute("images", imageStores);
- return "images";
- }
-
- @GetMapping("/downloadimages")
- public String getImageStoreData(Model model) {
- ImageStore[] imageStores = ORDSCalls.getImageStoreData();
- model.addAttribute("images", imageStores);
- return "images";
- }
-}
diff --git a/java-gcpspeechai/src/main/java/oracleai/WriteAStoryAboutAPictureAndGiveItsSentiments.java b/java-gcpspeechai/src/main/java/oracleai/WriteAStoryAboutAPictureAndGiveItsSentiments.java
deleted file mode 100644
index 7e15d6c..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/WriteAStoryAboutAPictureAndGiveItsSentiments.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package oracleai;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.oracle.bmc.aivision.model.*;
-import oracleai.services.*;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.ui.Model;
-
-@Controller
-@RequestMapping("/tellastory")
-public class WriteAStoryAboutAPictureAndGiveItsSentiments {
-
- @PostMapping("/tellastory")
- public String tellastory(@RequestParam("file") MultipartFile multipartFile, @RequestParam("opts") String opts,
- @RequestParam("genopts") String genopts, Model model)
- throws Exception {
- System.out.println("WriteAStoryAboutAPictureAndGiveItsSentiments.tellastory file = " +
- multipartFile.getOriginalFilename());
- String fullText = "";
- if(opts.equals("inline")) {
- String objectDetectionResults =
- OracleVisionAI.processImage(multipartFile.getBytes(),
- ImageObjectDetectionFeature.builder().maxResults(10).build());
- OracleVisionAI.ImageAnalysisResult imageAnalysis =
- new ObjectMapper().readValue(objectDetectionResults, OracleVisionAI.ImageAnalysisResult.class);
- for (OracleVisionAI.ImageObject image : imageAnalysis.getImageObjects()) fullText += image.getName() + ", ";
- System.out.println("WriteAStoryAboutAPictureAndGiveItsSentiments.tellastory images = " + fullText);
- }
- else {
- OracleObjectStore.sendToObjectStorage(multipartFile.getOriginalFilename(), multipartFile.getInputStream());
- fullText = ORDSCalls.analyzeImageInObjectStore(
- AIApplication.ORDS_ENDPOINT_URL + "VISIONAI_OBJECTDETECTION/",
- AIApplication.OCI_VISION_SERVICE_ENDPOINT,
- AIApplication.COMPARTMENT_ID,
- AIApplication.OBJECTSTORAGE_BUCKETNAME,
- AIApplication.OBJECTSTORAGE_NAMESPACE,
- multipartFile.getOriginalFilename(), //"objectdetectiontestimage.jpg"
- "OBJECT_DETECTION",
- "TellAStory");
- }
- String generatedstory = OracleGenAI.builder().build().chat("using strong negative and positive sentiments, " +
- "write a story that is " + genopts + " and includes " + fullText );
- model.addAttribute("results", "STORY: " + generatedstory +
- " --->SENTIMENT ANALYSIS: " + OracleLanguageAI.sentimentAnalysis(generatedstory) );
- return "resultspage";
- }
-
-}
-
-
-
diff --git a/java-gcpspeechai/src/main/java/oracleai/common/FileUploadExceptionAdvice.java b/java-gcpspeechai/src/main/java/oracleai/common/FileUploadExceptionAdvice.java
deleted file mode 100644
index f164b7d..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/common/FileUploadExceptionAdvice.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package oracleai.common;
-
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.multipart.MaxUploadSizeExceededException;
-
-@ControllerAdvice
-public class FileUploadExceptionAdvice {
-
- @ExceptionHandler(MaxUploadSizeExceededException.class)
- public ResponseEntity handleMaxSizeException(MaxUploadSizeExceededException exc) {
- return ResponseEntity.status(HttpStatus.EXPECTATION_FAILED).body("File too large!");
- }
-}
\ No newline at end of file
diff --git a/java-gcpspeechai/src/main/java/oracleai/digitaldouble/DigitalDoubleDownloadInfo.java b/java-gcpspeechai/src/main/java/oracleai/digitaldouble/DigitalDoubleDownloadInfo.java
deleted file mode 100644
index 1b90219..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/digitaldouble/DigitalDoubleDownloadInfo.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package oracleai.digitaldouble;
-
-public class DigitalDoubleDownloadInfo {
-
- String email;
- String modelUrl;
- String modelGlbUrl;
- String modelFbxUrl ;
- String modelUsdzUrl ;
- String thumbnailUrl;
- String animatedVideoLocation;
- String similarImageUrl;
-
-
-
- public DigitalDoubleDownloadInfo() {
-
- }
- public DigitalDoubleDownloadInfo(String modelUrl, String modelGlbUrl, String modelFbxUrl,
- String modelUsdzUrl, String thumbnailUrl) {
- this.modelUrl = modelUrl;
- this.modelGlbUrl = modelGlbUrl;
- this.modelFbxUrl = modelFbxUrl;
- this.modelUsdzUrl = modelUsdzUrl;
- this.thumbnailUrl = thumbnailUrl;
- }
-
- public DigitalDoubleDownloadInfo(String modelGlbUrl, String modelFbxUrl, String modelUsdzUrl,
- String thumbnailUrl, String animatedVideoLocation,
- String email, String similarImageUrl) {
- this.modelGlbUrl = modelGlbUrl;
- this.modelFbxUrl = modelFbxUrl;
- this.modelUsdzUrl = modelUsdzUrl;
- this.thumbnailUrl = thumbnailUrl;
- this.animatedVideoLocation = animatedVideoLocation;
- this.email = email;
- this.similarImageUrl = similarImageUrl;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public void setModelUrl(String modelUrl) {
- this.modelUrl = modelUrl;
- }
-
- public void setModelGlbUrl(String modelGlbUrl) {
- this.modelGlbUrl = modelGlbUrl;
- }
-
- public void setModelFbxUrl(String modelFbxUrl) {
- this.modelFbxUrl = modelFbxUrl;
- }
-
- public void setModelUsdzUrl(String modelUsdzUrl) {
- this.modelUsdzUrl = modelUsdzUrl;
- }
-
- public void setThumbnailUrl(String thumbnailUrl) {
- this.thumbnailUrl = thumbnailUrl;
- }
-
- public void setAnimatedVideoLocation(String animatedVideoLocation) {
- this.animatedVideoLocation = animatedVideoLocation;
- }
-
- public void setSimilarImageUrl(String similarImageUrl) {
- this.similarImageUrl = similarImageUrl;
- }
-
- public String getEmail() {
- return email;
- }
-
- public String getModelUrl() {
- return modelUrl;
- }
-
- public String getModelGlbUrl() {
- return modelGlbUrl;
- }
-
- public String getModelFbxUrl() {
- return modelFbxUrl;
- }
-
- public String getModelUsdzUrl() {
- return modelUsdzUrl;
- }
-
- public String getThumbnailUrl() {
- return thumbnailUrl;
- }
-
- public String getAnimatedVideoLocation() {
- return animatedVideoLocation;
- }
-
- public String getSimilarImageUrl() {
- return similarImageUrl;
- }
-}
diff --git a/java-gcpspeechai/src/main/java/oracleai/digitaldouble/DigitalDoubleService.java b/java-gcpspeechai/src/main/java/oracleai/digitaldouble/DigitalDoubleService.java
deleted file mode 100644
index f660a46..0000000
--- a/java-gcpspeechai/src/main/java/oracleai/digitaldouble/DigitalDoubleService.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package oracleai.digitaldouble;
-
-import oracleai.AIApplication;
-import org.springframework.http.*;
-import org.springframework.stereotype.Service;
-import org.springframework.web.client.RestTemplate;
-
-import java.util.HashMap;
-import java.util.Map;
-
-@Service
-public class DigitalDoubleService {
-
- public void updateDigitalDoubleData(DigitalDoubleDownloadInfo info) {
- String url = AIApplication.ORDS_OMLOPSENDPOINT_URL + "update_digital_double_data/";
-
- HttpHeaders headers = new HttpHeaders();
- headers.setContentType(MediaType.APPLICATION_JSON);
-
- Map requestBody = new HashMap<>();
- requestBody.put("p_participant_email", info.getEmail());
- requestBody.put("p_modelglburl_out", info.getModelGlbUrl());
- requestBody.put("p_modelfbxurl_out", info.modelFbxUrl);
- requestBody.put("p_modelusdzurl_out", info.modelUsdzUrl);
- requestBody.put("p_thumbnailurl_out", info.thumbnailUrl);
-
- HttpEntity