Google Cloud Console TTS. Prevod textu na reč cez API na Linuxe
Nadväzujem na predchádzajúci článok o službách Google Cloud Console (odkaz tu).
Prečo sa zaoberať API keď existuje aj grafické rozhranie Vertex AI? Nevýhoda Vertex AI (odkaz tu) je to, že podporuje maximálne len 500 znakov čo je asi tak na štyri vety. Praktické využitie takmer žiadne.
Riešenie je API. Je navyše cenovo výhodné. 4 milióny znakov mesačne je zadarmo.
Je zaujímavé, že ja ako človek s minimálnymi programátorskými skúsenosťami / schopnosťami som zvládol API TTS relatívne ľahko. Veľkou pomocou mi bola zabudovaná AI, ktorá dobre pracuje aj v slovenčine.
Jedná sa o prácu v termináli. Ak sa vyskytnú akékoľvek chybové hlášky, treba ich poslať AI a tá sa opraví a pomôže s tým čo treba zmeniť. Umenie úspechu tiež spočíva v správne položených otázkach.
Odkaz na AI asistenta https://console.cloud.google.com/gemini
Podmienka je si nainštalovať program bez grafického rozhrania s názvom gcloud CLI. Návod na inštaláciu Odkaz tu. Umožňujú dokonca aj snap verziu (odkaz tu) ideálne pre distribúcie založené na Ubuntu
Ďalej do terminálu na Linuxe treba zadať nasledovné príkazy:
gcloud init
gcloud auth login
gcloud config set project [VÁŠ_PROJECT_ID]
pri prvej konfigurácii a prvom prihlásení v termináli sa vám otvorí prehliadač v ktorom vás to vyzve aby ste odsúhlasili že súhlasíte s prepojením vášho úctu Google Cloud Console s terminálom
Project ID nájdete na adrese https://console.cloud.google.com/welcome
API funguje na báze .json súborov. Do .json súboru vložíte zadanie pre Google Cloud a odošlete pomocou terminálu. Súbor vytvoríte jednoducho tak, že kód vložíte do textového editora a následne dáte názov súboru nazov.json. Súbor môžete uložiť napríklad na adresu /home/uzivatel/
potom ako cez terminál odošlete .json súbor, terminál vygeneruje iný .json ktorý si otvorte v textovom editore, aby ste videli či prebehlo všetko v poriadku alebo sú tam nejaké chybové hlášky
Google Cloud Console ukladá dáta do sekcie zvanej Bucket. (sekciu Bucket môžete nájsť aj pomocou vyhľadávača v hornej časti rozhrania). Ukladajú sa tam vstupné a výstupné súbory. Môžete tam napríklad vložiť audio súbor pre účel prevodu reči na text, alebo naopak tam uloží audio súbor s prevodu textu na reč TTS
AI tiež nie je dokonalá ako prvý návod mi uviedla taký ktorý bol zbytočne zložitý a podporoval dĺžku len pár viet. Potom ako som upozornil na chybové hlášky poskytla mi lepšie návody a príkazy, ktoré boli jednoduchšie a podporovali aj dlhšie texty
Obsah .json súboru. FLAC audio formát nepodporuje, tak som tam dal WAV formát. „LINEAR16“ je podkategória WAV
{
"parent": "projects/nazov_project_ID/locations/global",
"audioConfig": {
"audioEncoding": "LINEAR16",
"sampleRateHertz": 24000
},
"input": {
"text": "Tu vložte váš dlhý text, ktorý môže mať až do 1MB znakov. Toto API je určené pre dlhé texty, ktoré prekračujú 5000 bajtov. Výstupný súbor bude uložený priamo do Google Cloud Storage bucketu, ktorý ste si vytvorili."
},
"voice": {
"languageCode": "sk-SK",
"name": "sk-SK-Chirp3-HD-Alnilam",
"ssmlGender": "MALE"
},
"output_gcs_uri": "gs://nazov_bucketu/dlhy_text_chirp3-male.wav"
}
Do terminálu zadaný vstupný a výstupný .json súbor
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-H "x-goog-user-project: nazov_project_ID" \
-d @request.json \
"https://texttospeech.googleapis.com/v1beta1/projects/nazov_project_ID/locations/global:synthesizeLongAudio" \
-o long_audio_response.json
Vyžiadanie zoznamu hlasov cez terminál
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-H "x-goog-user-project: nazov_project_ID" \
"https://texttospeech.googleapis.com/v1/voices" \
-o voices.json

Pre pridávanie komentárov sa musíte prihlásiť.