@אביי לאור הבעיה של הקול בהקראה חשבתי על להוסיף אפשרות לעשות tts חיצוני ולהעלות לימות את האודיו, מה שיכול להפוך את ההקראה לנוחה הרבה יותר ויחסוך את זמן ההמתנה.
יש את הapi של openai, אבל הבעיה היא שהוא עולה כסף...
יש גם את המנוע Cloud Text-to-Speech API של גוגל, יש שם גם אופציה לssml וזה חינם עד 4,000,000 או 1,000,000 תווים לחודש (תלוי בקול)
const urlYemotApi = `https://www.call2all.co.il/ym/api/`;
const ttsApiKey = '';
const yemotApiKey = ""
function textToSpeech(text) {
const endpointUrl = 'https://texttospeech.googleapis.com/v1/text:synthesize?key=' + ttsApiKey;
let requestBody = {
'input': {
'text': text
},
'voice': {
'languageCode': 'he-IL',
'name': 'he-IL-Wavenet-D',
'ssmlGender': 'MALE'
},
'audioConfig': {
'audioEncoding': 'LINEAR16',
'effects_profile_id':['telephony-class-application']
}
};
let response = UrlFetchApp.fetch(endpointUrl, {
method: 'POST',
contentType: 'application/json',
payload: JSON.stringify(requestBody)
});
let obj = JSON.parse(response.getContentText());
let audioData = Utilities.base64Decode(obj.audioContent);
let audioBlob = Utilities.newBlob(audioData, 'audio/wav', 'output.wav');
return audioBlob
}
function UploadFile(token, path, blob){
const formData = {
token: token,
path: `ivr2:/${path}`,
convertAudio: "1",
autoNumbering: "true",
file: blob
};
const options = {
method: 'post',
payload: formData,
};
return JSON.parse(UrlFetchApp.fetch(`${url_yemot_api}UploadFile`, options)).responseStatus === "OK";
}
אופציה נוספת - לחכות לgoogle שיוסיפו פלט אודיו לgemini (בlive יש כבר, זכור לי שגם באחד המודלים הרגילים הם כתבו בתיעוד שהם יוסיפו בקרוב פלט אודיו).