From b18c04d491c4a9d649f69e40e06ea6df4a6b82d1 Mon Sep 17 00:00:00 2001 From: Steven Polley Date: Sat, 3 Aug 2024 22:13:29 -0600 Subject: [PATCH] initial commit --- .gitignore | 4 + go.mod | 38 + go.sum | 162 +++++ jobs/README.MD | 3 + main.go | 178 +++++ voices.txt | 1860 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 2245 insertions(+) create mode 100644 .gitignore create mode 100644 go.mod create mode 100644 go.sum create mode 100644 jobs/README.MD create mode 100644 main.go create mode 100644 voices.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d231f8e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +jobs/*.json +*.mp3 +ideas.md +*.exe \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..cdf5898 --- /dev/null +++ b/go.mod @@ -0,0 +1,38 @@ +module deadbeef.codes/steven/tts + +go 1.22.0 + +require cloud.google.com/go/texttospeech v1.7.11 + +require ( + cloud.google.com/go v0.115.0 // indirect + cloud.google.com/go/auth v0.7.3 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.3 // indirect + cloud.google.com/go/compute/metadata v0.5.0 // indirect + cloud.google.com/go/longrunning v0.5.11 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/google/s2a-go v0.1.8 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.13.0 // indirect + go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect + go.opentelemetry.io/otel v1.28.0 // indirect + go.opentelemetry.io/otel/metric v1.28.0 // indirect + go.opentelemetry.io/otel/trace v1.28.0 // indirect + golang.org/x/crypto v0.25.0 // indirect + golang.org/x/net v0.27.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/api v0.190.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240730163845-b1a4ccb954bf // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240730163845-b1a4ccb954bf // indirect + google.golang.org/grpc v1.65.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..0f53342 --- /dev/null +++ b/go.sum @@ -0,0 +1,162 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14= +cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU= +cloud.google.com/go/auth v0.7.3 h1:98Vr+5jMaCZ5NZk6e/uBgf60phTk/XN84r8QEWB9yjY= +cloud.google.com/go/auth v0.7.3/go.mod h1:HJtWUx1P5eqjy/f6Iq5KeytNpbAcGolPhOgyop2LlzA= +cloud.google.com/go/auth/oauth2adapt v0.2.3 h1:MlxF+Pd3OmSudg/b1yZ5lJwoXCEaeedAguodky1PcKI= +cloud.google.com/go/auth/oauth2adapt v0.2.3/go.mod h1:tMQXOfZzFuNuUxOypHlQEXgdfX5cuhwU+ffUuXRJE8I= +cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= +cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= +cloud.google.com/go/longrunning v0.5.11 h1:Havn1kGjz3whCfoD8dxMLP73Ph5w+ODyZB9RUsDxtGk= +cloud.google.com/go/longrunning v0.5.11/go.mod h1:rDn7//lmlfWV1Dx6IB4RatCPenTwwmqXuiP0/RgoEO4= +cloud.google.com/go/texttospeech v1.7.11 h1:jzko1ahItjLYEWr6n3lTIoBSinD1JzavEuDzYLWZNko= +cloud.google.com/go/texttospeech v1.7.11/go.mod h1:Ua125HU+WT2IkIo5MzQtuNpNEk72soShJQVdorZ1SAE= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= +github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= +go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= +go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= +go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= +go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= +go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= +go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.190.0 h1:ASM+IhLY1zljNdLu19W1jTmU6A+gMk6M46Wlur61s+Q= +google.golang.org/api v0.190.0/go.mod h1:QIr6I9iedBLnfqoD6L6Vze1UvS5Hzj5r2aUBOaZnLHo= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto/googleapis/api v0.0.0-20240730163845-b1a4ccb954bf h1:GillM0Ef0pkZPIB+5iO6SDK+4T9pf6TpaYR6ICD5rVE= +google.golang.org/genproto/googleapis/api v0.0.0-20240730163845-b1a4ccb954bf/go.mod h1:OFMYQFHJ4TM3JRlWDZhJbZfra2uqc3WLBZiaaqP4DtU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240730163845-b1a4ccb954bf h1:liao9UHurZLtiEwBgT9LMOnKYsHze6eA6w1KQCMVN2Q= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240730163845-b1a4ccb954bf/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/jobs/README.MD b/jobs/README.MD new file mode 100644 index 0000000..f9d1561 --- /dev/null +++ b/jobs/README.MD @@ -0,0 +1,3 @@ +# Jobs directory + +This directory contains the json files that are read when tts is ran. \ No newline at end of file diff --git a/main.go b/main.go new file mode 100644 index 0000000..a4d5ee4 --- /dev/null +++ b/main.go @@ -0,0 +1,178 @@ +package main + +import ( + "context" + "crypto/sha256" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "io" + "log" + "os" + "path/filepath" + "strings" + + texttospeech "cloud.google.com/go/texttospeech/apiv1" + "cloud.google.com/go/texttospeech/apiv1/texttospeechpb" +) + +type Job struct { + Name string `json:"name"` + Voice string `json:"voice"` + Language string `json:"language"` + Message string `json:"message"` +} + +func loadJobs(directory string) ([]Job, error) { + jobs := make([]Job, 0) + err := filepath.Walk(directory, func(path string, info os.FileInfo, err error) error { + if !info.IsDir() && strings.HasSuffix(path, ".json") { + f, err := os.Open(fmt.Sprintf("%s", path)) + defer f.Close() + if err != nil { + return fmt.Errorf("failed to open file '%s': %v", path, err) + } + + b, err := io.ReadAll(f) + if err != nil { + return fmt.Errorf("failed to read file '%s': %v", path, err) + } + + job := Job{} + err = json.Unmarshal(b, &job) + if err != nil { + return fmt.Errorf("failed to unmarshal file '%s' into Job struct: %v", path, err) + } + jobs = append(jobs, job) + } + return nil + }) + + if err != nil { + return nil, fmt.Errorf("failed to walk current directory for json files: %v", err) + } + return jobs, nil +} + +func main() { + + if len(os.Args) > 1 { + if os.Args[1] == "list" { + err := ListVoices() + if err != nil { + log.Fatalf("failed to list voices: %v", err) + } + return + } + } + + jobs, err := loadJobs("jobs") + if err != nil { + log.Fatalf("failed to load jobs: %v", err) + } + + // Check each message if MP3 file already exists, if not then it will synthesize and save the audio to file + // file names are SHA256 sums of the spoken text + for _, job := range jobs { + h := sha256.New() + h.Write([]byte(job.Message)) + sha := h.Sum(nil) // "sha" is uint8 type, encoded in base16 + + filename := fmt.Sprintf("%s-%s.mp3", job.Name, hex.EncodeToString(sha)) + + if _, err := os.Stat(fmt.Sprintf("%s", filename)); errors.Is(err, os.ErrNotExist) { + mp3, err := getTTS(job.Voice, job.Message, job.Language) + if err != nil { + log.Printf("failed to get TTS: %v", err) + continue + } + + err = os.WriteFile(fmt.Sprintf("%s", filename), mp3, 0644) + if err != nil { + log.Printf("failed to write mp3 file: %v", err) + continue + } + log.Printf("Audio content written to file: %v\n", filename) + } + } +} + +// Accepts a string and returns a byteslice of the message in mp3 format, and an error +func getTTS(voice, message, language string) ([]byte, error) { + + // Instantiates a client. + ctx := context.Background() + + client, err := texttospeech.NewClient(ctx) + if err != nil { + return nil, fmt.Errorf("failed to create TTS client: %v", err) + } + defer client.Close() + + // Perform the text-to-speech request on the text input with the selected + // voice parameters and audio file type. + req := texttospeechpb.SynthesizeSpeechRequest{ + // Set the text input to be synthesized. + Input: &texttospeechpb.SynthesisInput{ + InputSource: &texttospeechpb.SynthesisInput_Text{Text: message}, + }, + // Build the voice request, select the language code ("en-US") and the SSML + // voice gender ("neutral"). + Voice: &texttospeechpb.VoiceSelectionParams{ + LanguageCode: language, + Name: voice, + //Name: "en-US-Journey-F", + //Name: "tr-TR-Wavenet-E", + }, + // Select the type of audio file you want returned. + AudioConfig: &texttospeechpb.AudioConfig{ + AudioEncoding: texttospeechpb.AudioEncoding_MP3, + EffectsProfileId: []string{"headphone-class-device"}, + SpeakingRate: 0.8, + }, + } + + resp, err := client.SynthesizeSpeech(ctx, &req) + if err != nil { + return nil, fmt.Errorf("failed to synthesize speech: %v", err) + } + + return resp.AudioContent, nil +} + +// ListVoices lists the available text to speech voices. +func ListVoices() error { + ctx := context.Background() + + client, err := texttospeech.NewClient(ctx) + if err != nil { + return err + } + defer client.Close() + + // Performs the list voices request. + resp, err := client.ListVoices(ctx, &texttospeechpb.ListVoicesRequest{}) + if err != nil { + return err + } + + for _, voice := range resp.Voices { + // Display the voice's name. Example: tpc-vocoded + fmt.Printf("Name: %v\n", voice.Name) + + // Display the supported language codes for this voice. Example: "en-US" + for _, languageCode := range voice.LanguageCodes { + fmt.Printf(" Supported language: %v\n", languageCode) + } + + // Display the SSML Voice Gender. + fmt.Printf(" SSML Voice Gender: %v\n", voice.SsmlGender.String()) + + // Display the natural sample rate hertz for this voice. Example: 24000 + fmt.Printf(" Natural Sample Rate Hertz: %v\n", + voice.NaturalSampleRateHertz) + } + + return nil +} diff --git a/voices.txt b/voices.txt new file mode 100644 index 0000000..c827529 --- /dev/null +++ b/voices.txt @@ -0,0 +1,1860 @@ +Name: af-ZA-Standard-A + Supported language: af-ZA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: am-ET-Standard-A + Supported language: am-ET + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: am-ET-Standard-B + Supported language: am-ET + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: am-ET-Wavenet-A + Supported language: am-ET + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: am-ET-Wavenet-B + Supported language: am-ET + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ar-XA-Standard-A + Supported language: ar-XA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ar-XA-Standard-B + Supported language: ar-XA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ar-XA-Standard-C + Supported language: ar-XA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ar-XA-Standard-D + Supported language: ar-XA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ar-XA-Wavenet-A + Supported language: ar-XA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ar-XA-Wavenet-B + Supported language: ar-XA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ar-XA-Wavenet-C + Supported language: ar-XA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ar-XA-Wavenet-D + Supported language: ar-XA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: bg-BG-Standard-A + Supported language: bg-BG + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: bn-IN-Standard-A + Supported language: bn-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: bn-IN-Standard-B + Supported language: bn-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: bn-IN-Standard-C + Supported language: bn-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: bn-IN-Standard-D + Supported language: bn-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: bn-IN-Wavenet-A + Supported language: bn-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: bn-IN-Wavenet-B + Supported language: bn-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: bn-IN-Wavenet-C + Supported language: bn-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: bn-IN-Wavenet-D + Supported language: bn-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ca-ES-Standard-A + Supported language: ca-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: cmn-CN-Standard-A + Supported language: cmn-CN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: cmn-CN-Standard-B + Supported language: cmn-CN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: cmn-CN-Standard-C + Supported language: cmn-CN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: cmn-CN-Standard-D + Supported language: cmn-CN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: cmn-CN-Wavenet-A + Supported language: cmn-CN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: cmn-CN-Wavenet-B + Supported language: cmn-CN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: cmn-CN-Wavenet-C + Supported language: cmn-CN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: cmn-CN-Wavenet-D + Supported language: cmn-CN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: cmn-TW-Standard-A + Supported language: cmn-TW + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: cmn-TW-Standard-B + Supported language: cmn-TW + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: cmn-TW-Standard-C + Supported language: cmn-TW + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: cmn-TW-Wavenet-A + Supported language: cmn-TW + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: cmn-TW-Wavenet-B + Supported language: cmn-TW + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: cmn-TW-Wavenet-C + Supported language: cmn-TW + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: cs-CZ-Standard-A + Supported language: cs-CZ + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: cs-CZ-Wavenet-A + Supported language: cs-CZ + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: da-DK-Neural2-D + Supported language: da-DK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: da-DK-Standard-A + Supported language: da-DK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: da-DK-Standard-C + Supported language: da-DK + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: da-DK-Standard-D + Supported language: da-DK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: da-DK-Standard-E + Supported language: da-DK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: da-DK-Wavenet-A + Supported language: da-DK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: da-DK-Wavenet-C + Supported language: da-DK + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: da-DK-Wavenet-D + Supported language: da-DK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: da-DK-Wavenet-E + Supported language: da-DK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Neural2-A + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Neural2-B + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Neural2-C + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Neural2-D + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Neural2-F + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Polyglot-1 + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Standard-A + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Standard-B + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Standard-C + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Standard-D + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Standard-E + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Standard-F + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Studio-B + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Studio-C + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Wavenet-A + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Wavenet-B + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Wavenet-C + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Wavenet-D + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Wavenet-E + Supported language: de-DE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: de-DE-Wavenet-F + Supported language: de-DE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: el-GR-Standard-A + Supported language: el-GR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: el-GR-Wavenet-A + Supported language: el-GR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Neural2-A + Supported language: en-AU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Neural2-B + Supported language: en-AU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Neural2-C + Supported language: en-AU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Neural2-D + Supported language: en-AU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-News-E + Supported language: en-AU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-News-F + Supported language: en-AU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-News-G + Supported language: en-AU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Polyglot-1 + Supported language: en-AU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Standard-A + Supported language: en-AU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Standard-B + Supported language: en-AU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Standard-C + Supported language: en-AU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Standard-D + Supported language: en-AU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Wavenet-A + Supported language: en-AU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Wavenet-B + Supported language: en-AU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Wavenet-C + Supported language: en-AU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-AU-Wavenet-D + Supported language: en-AU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Neural2-A + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Neural2-B + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Neural2-C + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Neural2-D + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Neural2-F + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-News-G + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-News-H + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-News-I + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-News-J + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-News-K + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-News-L + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-News-M + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Standard-A + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Standard-B + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Standard-C + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Standard-D + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Standard-F + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Studio-B + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Studio-C + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Wavenet-A + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Wavenet-B + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Wavenet-C + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Wavenet-D + Supported language: en-GB + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-GB-Wavenet-F + Supported language: en-GB + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Neural2-A + Supported language: en-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Neural2-B + Supported language: en-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Neural2-C + Supported language: en-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Neural2-D + Supported language: en-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Standard-A + Supported language: en-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Standard-B + Supported language: en-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Standard-C + Supported language: en-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Standard-D + Supported language: en-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Wavenet-A + Supported language: en-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Wavenet-B + Supported language: en-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Wavenet-C + Supported language: en-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-IN-Wavenet-D + Supported language: en-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Casual-K + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Journey-D + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Journey-F + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Journey-O + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Neural2-A + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Neural2-C + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Neural2-D + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Neural2-E + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Neural2-F + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Neural2-G + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Neural2-H + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Neural2-I + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Neural2-J + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-News-K + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-News-L + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-News-N + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Polyglot-1 + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-A + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-B + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-C + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-D + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-E + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-F + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-G + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-H + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-I + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Standard-J + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Studio-O + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Studio-Q + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-A + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-B + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-C + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-D + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-E + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-F + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-G + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-H + Supported language: en-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-I + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: en-US-Wavenet-J + Supported language: en-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Neural2-A + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Neural2-B + Supported language: es-ES + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Neural2-C + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Neural2-D + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Neural2-E + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Neural2-F + Supported language: es-ES + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Polyglot-1 + Supported language: es-ES + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Standard-A + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Standard-B + Supported language: es-ES + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Standard-C + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Standard-D + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Studio-C + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Studio-F + Supported language: es-ES + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Wavenet-B + Supported language: es-ES + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Wavenet-C + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-ES-Wavenet-D + Supported language: es-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Neural2-A + Supported language: es-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Neural2-B + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Neural2-C + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-US-News-D + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-US-News-E + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-US-News-F + Supported language: es-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-US-News-G + Supported language: es-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Polyglot-1 + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Standard-A + Supported language: es-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Standard-B + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Standard-C + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Studio-B + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Wavenet-A + Supported language: es-US + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Wavenet-B + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: es-US-Wavenet-C + Supported language: es-US + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: eu-ES-Standard-A + Supported language: eu-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fi-FI-Standard-A + Supported language: fi-FI + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fi-FI-Wavenet-A + Supported language: fi-FI + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fil-PH-Standard-A + Supported language: fil-PH + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fil-PH-Standard-B + Supported language: fil-PH + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fil-PH-Standard-C + Supported language: fil-PH + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fil-PH-Standard-D + Supported language: fil-PH + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fil-PH-Wavenet-A + Supported language: fil-PH + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fil-PH-Wavenet-B + Supported language: fil-PH + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fil-PH-Wavenet-C + Supported language: fil-PH + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fil-PH-Wavenet-D + Supported language: fil-PH + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fil-ph-Neural2-A + Supported language: fil-PH + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fil-ph-Neural2-D + Supported language: fil-PH + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Neural2-A + Supported language: fr-CA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Neural2-B + Supported language: fr-CA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Neural2-C + Supported language: fr-CA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Neural2-D + Supported language: fr-CA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Standard-A + Supported language: fr-CA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Standard-B + Supported language: fr-CA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Standard-C + Supported language: fr-CA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Standard-D + Supported language: fr-CA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Wavenet-A + Supported language: fr-CA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Wavenet-B + Supported language: fr-CA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Wavenet-C + Supported language: fr-CA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-CA-Wavenet-D + Supported language: fr-CA + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Neural2-A + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Neural2-B + Supported language: fr-FR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Neural2-C + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Neural2-D + Supported language: fr-FR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Neural2-E + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Polyglot-1 + Supported language: fr-FR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Standard-A + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Standard-B + Supported language: fr-FR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Standard-C + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Standard-D + Supported language: fr-FR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Standard-E + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Studio-A + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Studio-D + Supported language: fr-FR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Wavenet-A + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Wavenet-B + Supported language: fr-FR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Wavenet-C + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Wavenet-D + Supported language: fr-FR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: fr-FR-Wavenet-E + Supported language: fr-FR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: gl-ES-Standard-A + Supported language: gl-ES + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: gu-IN-Standard-A + Supported language: gu-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: gu-IN-Standard-B + Supported language: gu-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: gu-IN-Standard-C + Supported language: gu-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: gu-IN-Standard-D + Supported language: gu-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: gu-IN-Wavenet-A + Supported language: gu-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: gu-IN-Wavenet-B + Supported language: gu-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: gu-IN-Wavenet-C + Supported language: gu-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: gu-IN-Wavenet-D + Supported language: gu-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: he-IL-Standard-A + Supported language: he-IL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: he-IL-Standard-B + Supported language: he-IL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: he-IL-Standard-C + Supported language: he-IL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: he-IL-Standard-D + Supported language: he-IL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: he-IL-Wavenet-A + Supported language: he-IL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: he-IL-Wavenet-B + Supported language: he-IL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: he-IL-Wavenet-C + Supported language: he-IL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: he-IL-Wavenet-D + Supported language: he-IL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Neural2-A + Supported language: hi-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Neural2-B + Supported language: hi-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Neural2-C + Supported language: hi-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Neural2-D + Supported language: hi-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Standard-A + Supported language: hi-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Standard-B + Supported language: hi-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Standard-C + Supported language: hi-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Standard-D + Supported language: hi-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Wavenet-A + Supported language: hi-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Wavenet-B + Supported language: hi-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Wavenet-C + Supported language: hi-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: hi-IN-Wavenet-D + Supported language: hi-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: hu-HU-Standard-A + Supported language: hu-HU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: hu-HU-Wavenet-A + Supported language: hu-HU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: id-ID-Standard-A + Supported language: id-ID + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: id-ID-Standard-B + Supported language: id-ID + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: id-ID-Standard-C + Supported language: id-ID + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: id-ID-Standard-D + Supported language: id-ID + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: id-ID-Wavenet-A + Supported language: id-ID + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: id-ID-Wavenet-B + Supported language: id-ID + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: id-ID-Wavenet-C + Supported language: id-ID + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: id-ID-Wavenet-D + Supported language: id-ID + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: is-IS-Standard-A + Supported language: is-IS + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Neural2-A + Supported language: it-IT + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Neural2-C + Supported language: it-IT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Standard-A + Supported language: it-IT + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Standard-B + Supported language: it-IT + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Standard-C + Supported language: it-IT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Standard-D + Supported language: it-IT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Wavenet-A + Supported language: it-IT + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Wavenet-B + Supported language: it-IT + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Wavenet-C + Supported language: it-IT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: it-IT-Wavenet-D + Supported language: it-IT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Neural2-B + Supported language: ja-JP + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Neural2-C + Supported language: ja-JP + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Neural2-D + Supported language: ja-JP + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Standard-A + Supported language: ja-JP + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Standard-B + Supported language: ja-JP + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Standard-C + Supported language: ja-JP + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Standard-D + Supported language: ja-JP + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Wavenet-A + Supported language: ja-JP + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Wavenet-B + Supported language: ja-JP + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Wavenet-C + Supported language: ja-JP + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ja-JP-Wavenet-D + Supported language: ja-JP + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: kn-IN-Standard-A + Supported language: kn-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: kn-IN-Standard-B + Supported language: kn-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: kn-IN-Standard-C + Supported language: kn-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: kn-IN-Standard-D + Supported language: kn-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: kn-IN-Wavenet-A + Supported language: kn-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: kn-IN-Wavenet-B + Supported language: kn-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: kn-IN-Wavenet-C + Supported language: kn-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: kn-IN-Wavenet-D + Supported language: kn-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Neural2-A + Supported language: ko-KR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Neural2-B + Supported language: ko-KR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Neural2-C + Supported language: ko-KR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Standard-A + Supported language: ko-KR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Standard-B + Supported language: ko-KR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Standard-C + Supported language: ko-KR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Standard-D + Supported language: ko-KR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Wavenet-A + Supported language: ko-KR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Wavenet-B + Supported language: ko-KR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Wavenet-C + Supported language: ko-KR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ko-KR-Wavenet-D + Supported language: ko-KR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: lt-LT-Standard-A + Supported language: lt-LT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: lv-LV-Standard-A + Supported language: lv-LV + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ml-IN-Standard-A + Supported language: ml-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ml-IN-Standard-B + Supported language: ml-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ml-IN-Standard-C + Supported language: ml-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ml-IN-Standard-D + Supported language: ml-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ml-IN-Wavenet-A + Supported language: ml-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ml-IN-Wavenet-B + Supported language: ml-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ml-IN-Wavenet-C + Supported language: ml-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ml-IN-Wavenet-D + Supported language: ml-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: mr-IN-Standard-A + Supported language: mr-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: mr-IN-Standard-B + Supported language: mr-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: mr-IN-Standard-C + Supported language: mr-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: mr-IN-Wavenet-A + Supported language: mr-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: mr-IN-Wavenet-B + Supported language: mr-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: mr-IN-Wavenet-C + Supported language: mr-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ms-MY-Standard-A + Supported language: ms-MY + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ms-MY-Standard-B + Supported language: ms-MY + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ms-MY-Standard-C + Supported language: ms-MY + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ms-MY-Standard-D + Supported language: ms-MY + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ms-MY-Wavenet-A + Supported language: ms-MY + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ms-MY-Wavenet-B + Supported language: ms-MY + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ms-MY-Wavenet-C + Supported language: ms-MY + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ms-MY-Wavenet-D + Supported language: ms-MY + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Standard-A + Supported language: nb-NO + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Standard-B + Supported language: nb-NO + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Standard-C + Supported language: nb-NO + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Standard-D + Supported language: nb-NO + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Standard-E + Supported language: nb-NO + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Wavenet-A + Supported language: nb-NO + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Wavenet-B + Supported language: nb-NO + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Wavenet-C + Supported language: nb-NO + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Wavenet-D + Supported language: nb-NO + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nb-NO-Wavenet-E + Supported language: nb-NO + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nl-BE-Standard-A + Supported language: nl-BE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nl-BE-Standard-B + Supported language: nl-BE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nl-BE-Wavenet-A + Supported language: nl-BE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nl-BE-Wavenet-B + Supported language: nl-BE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Standard-A + Supported language: nl-NL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Standard-B + Supported language: nl-NL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Standard-C + Supported language: nl-NL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Standard-D + Supported language: nl-NL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Standard-E + Supported language: nl-NL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Wavenet-A + Supported language: nl-NL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Wavenet-B + Supported language: nl-NL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Wavenet-C + Supported language: nl-NL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Wavenet-D + Supported language: nl-NL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: nl-NL-Wavenet-E + Supported language: nl-NL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pa-IN-Standard-A + Supported language: pa-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pa-IN-Standard-B + Supported language: pa-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pa-IN-Standard-C + Supported language: pa-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pa-IN-Standard-D + Supported language: pa-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pa-IN-Wavenet-A + Supported language: pa-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pa-IN-Wavenet-B + Supported language: pa-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pa-IN-Wavenet-C + Supported language: pa-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pa-IN-Wavenet-D + Supported language: pa-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Standard-A + Supported language: pl-PL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Standard-B + Supported language: pl-PL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Standard-C + Supported language: pl-PL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Standard-D + Supported language: pl-PL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Standard-E + Supported language: pl-PL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Wavenet-A + Supported language: pl-PL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Wavenet-B + Supported language: pl-PL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Wavenet-C + Supported language: pl-PL + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Wavenet-D + Supported language: pl-PL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pl-PL-Wavenet-E + Supported language: pl-PL + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-BR-Neural2-A + Supported language: pt-BR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-BR-Neural2-B + Supported language: pt-BR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pt-BR-Neural2-C + Supported language: pt-BR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-BR-Standard-A + Supported language: pt-BR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-BR-Standard-B + Supported language: pt-BR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pt-BR-Standard-C + Supported language: pt-BR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-BR-Wavenet-A + Supported language: pt-BR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-BR-Wavenet-B + Supported language: pt-BR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pt-BR-Wavenet-C + Supported language: pt-BR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-PT-Standard-A + Supported language: pt-PT + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-PT-Standard-B + Supported language: pt-PT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pt-PT-Standard-C + Supported language: pt-PT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pt-PT-Standard-D + Supported language: pt-PT + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-PT-Wavenet-A + Supported language: pt-PT + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: pt-PT-Wavenet-B + Supported language: pt-PT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pt-PT-Wavenet-C + Supported language: pt-PT + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: pt-PT-Wavenet-D + Supported language: pt-PT + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ro-RO-Standard-A + Supported language: ro-RO + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ro-RO-Wavenet-A + Supported language: ro-RO + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Standard-A + Supported language: ru-RU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Standard-B + Supported language: ru-RU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Standard-C + Supported language: ru-RU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Standard-D + Supported language: ru-RU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Standard-E + Supported language: ru-RU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Wavenet-A + Supported language: ru-RU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Wavenet-B + Supported language: ru-RU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Wavenet-C + Supported language: ru-RU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Wavenet-D + Supported language: ru-RU + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ru-RU-Wavenet-E + Supported language: ru-RU + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sk-SK-Standard-A + Supported language: sk-SK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sk-SK-Wavenet-A + Supported language: sk-SK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sr-RS-Standard-A + Supported language: sr-RS + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Standard-A + Supported language: sv-SE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Standard-B + Supported language: sv-SE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Standard-C + Supported language: sv-SE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Standard-D + Supported language: sv-SE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Standard-E + Supported language: sv-SE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Wavenet-A + Supported language: sv-SE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Wavenet-B + Supported language: sv-SE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Wavenet-C + Supported language: sv-SE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Wavenet-D + Supported language: sv-SE + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: sv-SE-Wavenet-E + Supported language: sv-SE + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ta-IN-Standard-A + Supported language: ta-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ta-IN-Standard-B + Supported language: ta-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ta-IN-Standard-C + Supported language: ta-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ta-IN-Standard-D + Supported language: ta-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ta-IN-Wavenet-A + Supported language: ta-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ta-IN-Wavenet-B + Supported language: ta-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ta-IN-Wavenet-C + Supported language: ta-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ta-IN-Wavenet-D + Supported language: ta-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: te-IN-Standard-A + Supported language: te-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: te-IN-Standard-B + Supported language: te-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: th-TH-Neural2-C + Supported language: th-TH + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: th-TH-Standard-A + Supported language: th-TH + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Standard-A + Supported language: tr-TR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Standard-B + Supported language: tr-TR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Standard-C + Supported language: tr-TR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Standard-D + Supported language: tr-TR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Standard-E + Supported language: tr-TR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Wavenet-A + Supported language: tr-TR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Wavenet-B + Supported language: tr-TR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Wavenet-C + Supported language: tr-TR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Wavenet-D + Supported language: tr-TR + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: tr-TR-Wavenet-E + Supported language: tr-TR + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: uk-UA-Standard-A + Supported language: uk-UA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: uk-UA-Wavenet-A + Supported language: uk-UA + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ur-IN-Standard-A + Supported language: ur-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ur-IN-Standard-B + Supported language: ur-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: ur-IN-Wavenet-A + Supported language: ur-IN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: ur-IN-Wavenet-B + Supported language: ur-IN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Neural2-A + Supported language: vi-VN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Neural2-D + Supported language: vi-VN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Standard-A + Supported language: vi-VN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Standard-B + Supported language: vi-VN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Standard-C + Supported language: vi-VN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Standard-D + Supported language: vi-VN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Wavenet-A + Supported language: vi-VN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Wavenet-B + Supported language: vi-VN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Wavenet-C + Supported language: vi-VN + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: vi-VN-Wavenet-D + Supported language: vi-VN + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: yue-HK-Standard-A + Supported language: yue-HK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: yue-HK-Standard-B + Supported language: yue-HK + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000 +Name: yue-HK-Standard-C + Supported language: yue-HK + SSML Voice Gender: FEMALE + Natural Sample Rate Hertz: 24000 +Name: yue-HK-Standard-D + Supported language: yue-HK + SSML Voice Gender: MALE + Natural Sample Rate Hertz: 24000