Skip to content

Instantly share code, notes, and snippets.

@AndreasKueck
Last active December 19, 2023 03:18
Show Gist options
  • Select an option

  • Save AndreasKueck/65eb0ac0acffacda4bfc912d0a758d4b to your computer and use it in GitHub Desktop.

Select an option

Save AndreasKueck/65eb0ac0acffacda4bfc912d0a758d4b to your computer and use it in GitHub Desktop.
Envochigo per ElevenLabs en Guglo-Apoj-Skripto
function envochigodekunulaboratorioj() {
var url = 'https://api.elevenlabs.io/v1/text-to-speech/pMsXgVXv3BLzUgSXRplE';
// pMsXgVXv3BLzUgSXRplE estas nefikcia ID de unu el la vochoj, nome de Serena
var teksto = 'Chu vi iam audis tiun chi novajhon pri shia vojagho numero ok sen edzo kun jenaj ecoj ekster tiuj pecoj de Nauro al Chehhujo? Ehhoshangho chiujhaude.';
var t011 = '';
var t012 = '';
var t013 = '';
var t014 = '';
var t01 = '';
var t02 = '';
var t03 = '';
var t04 = '';
var t05 = '';
var t06 = '';
var t07 = '';
var t08 = '';
var t09 = '';
var t10 = '';
var t11 = '';
var t12 = '';
var t13 = '';
var t14 = '';
var t15 = '';
var t16 = '';
var t17 = '';
var t18 = '';
var t19 = '';
var t20 = '';
var t21 = '';
var t22 = '';
var t23 = '';
var t24 = '';
var t25 = '';
var t26 = '';
var t27 = '';
var t28 = '';
var t29 = '';
var t30 = '';
var t31 = '';
var t32 = '';
var t33 = '';
// var t34 = '';
// var t35 = '';
// var t36 = '';
// var t37 = '';
var t38 = '';
var t39 = '';
var t40 = '';
var t41 = '';
var t42 = '';
var t43 = '';
var t44 = '';
var t45 = '';
var t46 = '';
// Supersignigo
t011 = teksto.replaceAll(/[bB]ushaltej/g, "bus-haltej");
t012 = t011.replaceAll(/[cC]hashund/g, "chas-hund");
t013 = t012.replaceAll(/[fF]lughaven/g, "flug-haven");
t014 = t013.replaceAll(/[sS]enchav/g, "senc-hav");
t01 = t014.replaceAll(/ch/g, "ĉ");
t02 = t01.replaceAll(/gh/g, "ĝ");
t03 = t02.replaceAll(/hh/g, "ĥ");
t04 = t03.replaceAll(/jh/g, "ĵ");
t05 = t04.replaceAll(/sh/g, "ŝ");
t06 = t05.replaceAll(/au/g, "aŭ");
t07 = t06.replaceAll(/eu/g, "eŭ");
t08 = t07.replaceAll(/Ch/g, "Ĉ");
t09 = t08.replaceAll(/Gh/g, "Ĝ");
t10 = t09.replaceAll(/Hh/g, "Ĥ");
t11 = t10.replaceAll(/Jh/g, "Ĵ");
t12 = t11.replaceAll(/Sh/g, "Ŝ");
t13 = t12.replaceAll(/Au/g, "Aŭ");
t14 = t13.replaceAll(/Eu/g, "Eŭ");
t15 = t14.replaceAll(/Koreŭj/g, "Kore-uj");
t16 = t15.replaceAll(/Naŭr/g, "Na-ur");
t17 = t16.replaceAll(/Saŭd/g, "Sa-ud");
// Polecigo
t01 = t17.replaceAll(/c/g, "ts");
t02 = t01.replaceAll(/C/g, "ts");
t03 = t02.replaceAll(/v/g, "w");
t04 = t03.replaceAll(/V/g, "w");
t05 = t04.replaceAll(/j/g, "y");
t06 = t05.replaceAll(/J/g, "y");
t07 = t06.replaceAll(/ĉ/g, "cz");
t08 = t07.replaceAll(/Ĉ/g, "cz");
t09 = t08.replaceAll(/ĵ/g, "rz");
t10 = t09.replaceAll(/Ĵ/g, "rz");
t11 = t10.replaceAll(/ĝ/g, "dż");
t12 = t11.replaceAll(/Ĝ/g, "dż");
t13 = t12.replaceAll(/ŝ/g, "sz");
t14 = t13.replaceAll(/Ŝ/g, "sz");
t15 = t14.replaceAll(/ŭ/g, "ł");
t16 = t15.replaceAll(/ĥ/g, "ch");
t17 = t16.replaceAll(/Ĥ/g, "ch");
t18 = t17.replaceAll(/ok/g, "ohk");
t19 = t18.replaceAll(/s\-ro/g, "sinyoro");
t20 = t19.replaceAll(/s\-rino/g, "sinyorino");
t21 = t20.replaceAll(/ktp\./g, "ko to po");
t22 = t21.replaceAll(/k\.t\.p\./g, "ko to po");
t23 = t22.replaceAll(/atm/g, "antałtagmeze");
t24 = t23.replaceAll(/ptm/g, "posttagmeze");
t25 = t24.replaceAll(/bw\.?/g, "bonwolu");
t26 = t25.replaceAll(/Ok/g, "ohk");
t27 = t26.replaceAll(/S\-ro/g, "sinyoro");
t28 = t27.replaceAll(/S\-rino/g, "sinyorino");
t29 = t28.replaceAll(/Ktp\./g, "ko to po");
t30 = t29.replaceAll(/K\.t\.p\./g, "ko to po");
t31 = t30.replaceAll(/Atm/g, "antałtagmeze");
t32 = t31.replaceAll(/Ptm/g, "posttagmeze");
t33 = t32.replaceAll(/Bw\.?/g, "bonwolu");
// t34 = t33.replaceAll(/1000000/g, "miliono");
// t35 = t34.replaceAll(/1000/g, "mil");
// t36 = t35.replaceAll(/100/g, "tsent");
// t37 = t36.replaceAll(/10/g, "dek");
t38 = t33.replaceAll(/0/g, " nul ");
t39 = t38.replaceAll(/1/g, " unu ");
t40 = t39.replaceAll(/2/g, " du ");
t41 = t40.replaceAll(/3/g, " tri ");
t42 = t41.replaceAll(/4/g, " kwar ");
t43 = t42.replaceAll(/5/g, " kwin ");
t44 = t43.replaceAll(/6/g, " ses ");
t45 = t44.replaceAll(/7/g, " sep ");
t46 = t45.replaceAll(/8/g, " ohk ");
teksto = t46.replaceAll(/9/g, " nał ");
var xi_api_shlosilo = '12345'; // Anstatauigu 12345 per la vera xi-api-shlosilo
var payload = {
"model_id": "eleven_multilingual_v1", // Tio estas grava, por ke la prononco estu plej eble ne angleca!
"text": teksto,
"voice_settings": {
"stability": 0.75,
"similarity_boost": 0.75
}
}
var params = {
'async': true,
'crossDomain': true,
'method': 'POST',
'muteHttpExceptions' : true,
'headers': {
'content-type': 'application/json',
'cache-control': 'no-cache',
'xi-api-key': xi_api_shlosilo,
},
payload: JSON.stringify(payload)
}
var respondo = UrlFetchApp.fetch(url, params);
var uploadedBlob = respondo.getBlob();
var allFilesByName,file,myFolder,myVar,theFileID,thisFile;
// Definu variablo-nomojn sen tio, asigni valoron
file = {
title: 'dekunu01.mp3',
mimeType: 'audio/mpeg'
};
myFolder = DriveApp.getFolderById('98765'); // Anstatauigu 98765 per la vera ID de tiu dosierujo, kie trovighas dekunu01.mp3
allFilesByName = myFolder.getFilesByName('dekunu01.mp3');
while (allFilesByName.hasNext()) {
thisFile = allFilesByName.next();
theFileID = thisFile.getId();
myVar = Drive.Files.update(file, theFileID, uploadedBlob);
};
}
@AndreasKueck
Copy link
Copy Markdown
Author

AndreasKueck commented Apr 15, 2023

Per la supra funkcio envochigodekunulaboratorioj() oni envochigas skriban Esperanto-teksto-n per la aplikprograma interfaco (API) de ElevenLabs; eligo: aktualigita versio de sondosiero dekunu01.mp3 en la dosierujo specifita per myFolder.
Atentigo: En Guglo-Apoj-Skripto oni devas esti aldoninta Drive API al la Dienste (servoj).

Temas pri kontentiga solvo provizora, char Esperanto aktuale ne estas unu el la lingvoj subtenataj de ElevenLabs.

Por elprovi tion chi kaj alternativojn, jen ret-apo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment