Support +44 29 2255 0669
Contacto
Talk to our AI agent Start for free +44 29 2255 0669
Πράκτορες τεχνητής νοημοσύνης

Διαμορφώστε τον φωνητικό σας πράκτορα

Επιλέξτε τα στοιχεία του πράκτορά σας και υπολογίστε το κόστος ανά λεπτό

👂

Αναγνώριση φωνής (ASR)

Μετατρέψτε τη φωνή του πελάτη σε κείμενο

🧠

Μοντέλο τεχνητής νοημοσύνης (LLM)

Ο εγκέφαλος που καταλαβαίνει και απαντά

Φόρτωση μοντέλων...
🎙️

Φωνή (TTS)

Η φωνή με την οποία μιλάει ο πράκτοράς σας

Φόρτωση φωνών...

💰 Κόστος ανά λεπτό

ASR 0,012 €
LLM 0,030 €
TTS 0,015 €
Σύνολο €0,057/λεπτό
ASR: Ισορροπημένο
LLM: Φόρτωση...
Φωνή: Φόρτωση...

📊 Μηνιαία εκτίμηση

Εκτιμώμενο κόστος 17,10 €
Δημιουργία δωρεάν πράκτορα
💡
Πώς υπολογίζεται;

Το κόστος του LLM είναι μια εκτίμηση που βασίζεται σε τυπικά tokens ανά λεπτό συνομιλίας. Το πραγματικό κόστος ποικίλλει ανάλογα με την πολυπλοκότητα.

🔄
Αλλάξτε όποτε θέλετε

Μπορείτε να αλλάξετε το ASR, το LLM ή τη φωνή ανά πάσα στιγμή από τις ρυθμίσεις του πράκτορά σας.

💳
Πληρωμή ανά χρήση

Πληρώνετε μόνο για τα λεπτά που χρησιμοποιείτε. Χωρίς δεσμεύσεις ή πάγια τέλη.

Συχνές ερωτήσεις

Πώς λειτουργούν οι προπληρωμένες μονάδες;

Οι πιστώσεις είναι το μοναδικό σας υπόλοιπο για όλα: κλήσεις, SMS και υπηρεσίες τεχνητής νοημοσύνης. Ανανεώστε από 5€ και το υπόλοιπό σας δεν λήγει ποτέ.

Μπορώ να το δοκιμάσω πριν αγοράσω;

Ναι, κατά την εγγραφή σου λαμβάνεις δοκιμαστικές μονάδες ώστε να δοκιμάσεις τους πράκτορες τεχνητής νοημοσύνης χωρίς δέσμευση.

Υπάρχουν εκπτώσεις για μεγάλο όγκο κλήσεων;

Ναι, αν διαχειρίζεστε μεγάλο όγκο κλήσεων, επικοινωνήστε μαζί μας για μια εξατομικευμένη προσφορά.

Πού μπορώ να δω τις τηλεφωνικές χρεώσεις;

Δείτε όλες τις χρεώσεις κλήσεων και SMS στη σελίδα μας με τις χρεώσεις τηλεφωνίας.

Είστε έτοιμοι να αυτοματοποιήσετε τις κλήσεις σας;

Δημιουργήστε τον πράκτορά σας σε λίγα λεπτά και αρχίστε να εξοικονομείτε χρόνο

m.data_type_text == 1); renderLLMOptions(); } } catch (error) { console.error('Error cargando modelos:', error); document.getElementById('llm-loading').innerHTML = 'Error al cargar modelos'; } } async function loadVoices() { try { const res = await fetch(API_VOICES, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ token: "NONEEDTOKEN" }) }); const data = await res.json(); if (data.status === 'ok' && Array.isArray(data.list_voices)) { allVoices = data.list_voices; populateLanguageFilter(); renderVoices(); } } catch (error) { console.error('Error cargando voces:', error); document.getElementById('voices-loading').innerHTML = 'Error al cargar voces'; } } // ==================== RENDER LLM ==================== function renderLLMOptions() { const container = document.getElementById('llm-options'); const loading = document.getElementById('llm-loading'); if (allModels.length === 0) { container.innerHTML = '

No hay modelos disponibles

'; loading.style.display = 'none'; container.style.display = 'flex'; return; } // Ordenar por precio estimado const sortedModels = [...allModels].sort((a, b) => { return (a.costmin_estimated || 0) - (b.costmin_estimated || 0); }); let html = ''; let defaultSet = false; sortedModels.forEach((model, index) => { const price = (model.costmin_estimated || 0) * CREDIT_MULTIPLIER; const inputPrice = model.input_price_per_million_tokens ? formatPrice(model.input_price_per_million_tokens * CREDIT_MULTIPLIER) : '--'; const inputCachedPrice = model.input_cached_price_per_million_tokens ? formatPrice(model.input_cached_price_per_million_tokens * CREDIT_MULTIPLIER) : null; const outputPrice = model.output_price_per_million_tokens ? formatPrice(model.output_price_per_million_tokens * CREDIT_MULTIPLIER) : '--'; // Seleccionar por defecto el modelo intermedio o el primero si hay pocos const isDefault = index === Math.floor(sortedModels.length / 2); if (isDefault && !defaultSet) { selectedLLM = { name: model.comercial_name || model.model_code, price: price }; defaultSet = true; } // Tooltip con precios en tokens let tooltipContent = `
Precio por minuto estimado
Input: €${inputPrice}/1M tokens
${inputCachedPrice ? `
Input (caché): €${inputCachedPrice}/1M tokens
` : ''}
Output: €${outputPrice}/1M tokens
Estimación basada en uso típico de tokens por minuto.
`; const modelName = model.comercial_name || model.model_code; const modelDesc = model.model_description || 'Modelo de lenguaje avanzado'; html += ` `; }); container.innerHTML = html; loading.style.display = 'none'; container.style.display = 'flex'; // Event listeners container.querySelectorAll('input[name="llm"]').forEach(input => { input.addEventListener('change', function() { selectedLLM = { name: this.dataset.name, price: parseFloat(this.value) }; updateCostSummary(); }); }); updateCostSummary(); } // ==================== RENDER VOCES ==================== function populateLanguageFilter() { const select = document.getElementById('voice-lang-filter'); const languages = new Map(); allVoices.forEach(voice => { const locale = voice.locale || ''; const lang = locale.split('-')[0]; if (lang && !languages.has(lang)) { languages.set(lang, getLanguageName(lang)); } }); const sorted = Array.from(languages.entries()).sort((a, b) => a[1].localeCompare(b[1], 'es')); sorted.forEach(([code, name]) => { const opt = document.createElement('option'); opt.value = code; opt.textContent = name; select.appendChild(opt); }); } function getLanguageName(code) { const names = { 'es': 'Español', 'en': 'Inglés', 'fr': 'Francés', 'de': 'Alemán', 'it': 'Italiano', 'pt': 'Portugués', 'nl': 'Neerlandés', 'ja': 'Japonés', 'ko': 'Coreano', 'zh': 'Chino', 'ru': 'Ruso', 'ar': 'Árabe', 'hi': 'Hindi', 'pl': 'Polaco', 'tr': 'Turco', 'sv': 'Sueco', 'da': 'Danés', 'fi': 'Finlandés', 'no': 'Noruego', 'cs': 'Checo', 'el': 'Griego', 'he': 'Hebreo', 'hu': 'Húngaro', 'id': 'Indonesio', 'ms': 'Malayo', 'ro': 'Rumano', 'sk': 'Eslovaco', 'th': 'Tailandés', 'uk': 'Ucraniano', 'vi': 'Vietnamita', 'ca': 'Catalán', 'multi': 'Multiidioma' }; return names[code] || code.toUpperCase(); } function calculateVoicePricePerMin(voice) { // price_per_1k_chars está en créditos, asumimos ~500 chars por minuto de habla // Multiplicamos por CREDIT_MULTIPLIER para convertir a euros if (voice.price_per_1k_chars) { return (voice.price_per_1k_chars / 2) * CREDIT_MULTIPLIER; } return 0.015; // Precio por defecto } function renderVoices() { const container = document.getElementById('voice-list'); const loadingEl = document.getElementById('voices-loading'); const selectorEl = document.getElementById('voice-selector'); const emptyEl = document.getElementById('voices-empty'); const langFilter = document.getElementById('voice-lang-filter').value; const genderFilter = document.getElementById('voice-gender-filter').value; const searchQuery = document.getElementById('voice-search').value.toLowerCase(); let filtered = allVoices; if (langFilter) { filtered = filtered.filter(v => (v.locale || '').toLowerCase().startsWith(langFilter)); } if (genderFilter) { filtered = filtered.filter(v => v.gender === genderFilter); } if (searchQuery) { filtered = filtered.filter(v => (v.name || '').toLowerCase().includes(searchQuery) || (v.descriptive || '').toLowerCase().includes(searchQuery) ); } loadingEl.style.display = 'none'; if (filtered.length === 0) { selectorEl.style.display = 'none'; emptyEl.style.display = 'block'; return; } selectorEl.style.display = 'block'; emptyEl.style.display = 'none'; // Seleccionar la primera voz en español si existe, si no la primera disponible if (!selectedVoice.name && filtered.length > 0) { let defaultVoice = filtered.find(v => (v.locale || '').startsWith('es')) || filtered[0]; const price = calculateVoicePricePerMin(defaultVoice); selectedVoice = { name: defaultVoice.name, price: price }; } let html = ''; filtered.slice(0, 50).forEach(voice => { const pricePerMin = calculateVoicePricePerMin(voice); const pricePer1kChars = voice.price_per_1k_chars ? formatPrice(voice.price_per_1k_chars * CREDIT_MULTIPLIER) : '--'; const isSelected = voice.name === selectedVoice.name; const genderIcon = voice.gender === 'male' ? '♂' : '♀'; const voiceNameEscaped = (voice.name || '').replace(/'/g, "\\'"); html += `
${voice.name}
${genderIcon} ${voice.gender || ''} ${voice.locale || ''}
~€${formatPrice(pricePerMin)}
Precio por minuto estimado
Precio real: €${pricePer1kChars}/1K chars
~500 caracteres/minuto de habla
`; }); container.innerHTML = html; updateCostSummary(); } function selectVoice(element, name, price) { // Quitar selección anterior document.querySelectorAll('.voice-item').forEach(el => el.classList.remove('selected')); // Añadir selección element.classList.add('selected'); selectedVoice = { name, price }; updateCostSummary(); } function playVoice(url) { if (!url) { alert('Vista previa no disponible'); return; } if (audioPlayer.src === url && !audioPlayer.paused) { audioPlayer.pause(); } else { audioPlayer.src = url; audioPlayer.play(); } } // ==================== ACTUALIZAR RESUMEN ==================== function updateCostSummary() { // Actualizar precios individuales (ASR es fijo, LLM y TTS son aproximados) document.getElementById('cost-asr').textContent = '€' + formatPrice(selectedASR.price); document.getElementById('cost-llm').textContent = '~€' + formatPrice(selectedLLM.price); document.getElementById('cost-tts').textContent = '~€' + formatPrice(selectedVoice.price); // Calcular total const total = selectedASR.price + selectedLLM.price + selectedVoice.price; document.getElementById('cost-total').textContent = '~€' + formatPrice(total) + '/min'; // Actualizar selecciones document.getElementById('selected-asr').textContent = selectedASR.name; document.getElementById('selected-llm').textContent = selectedLLM.name || 'Selecciona...'; document.getElementById('selected-voice').textContent = selectedVoice.name || 'Selecciona...'; // Actualizar calculadora mensual updateMonthlyCalc(); } function updateMonthlyCalc() { const calls = parseInt(document.getElementById('calc-calls').value) || 100; const duration = parseFloat(document.getElementById('calc-duration').value) || 3; const totalMinutes = calls * duration; const totalPrice = selectedASR.price + selectedLLM.price + selectedVoice.price; const monthlyCost = totalMinutes * totalPrice; document.getElementById('calc-monthly').textContent = '€' + monthlyCost.toFixed(2); } // ==================== UTILIDADES ==================== function formatPrice(price) { if (price === null || price === undefined || !isFinite(price)) return '--'; if (price < 0.01) return price.toFixed(4); if (price < 0.1) return price.toFixed(3); return price.toFixed(2); } // ==================== EVENT LISTENERS ==================== document.addEventListener('DOMContentLoaded', function() { // Cargar datos loadModels(); loadVoices(); // ASR listeners document.querySelectorAll('input[name="asr"]').forEach(input => { input.addEventListener('change', function() { selectedASR = { name: this.dataset.name, price: parseFloat(this.value) }; updateCostSummary(); }); }); // Voice filter listeners document.getElementById('voice-lang-filter').addEventListener('change', renderVoices); document.getElementById('voice-gender-filter').addEventListener('change', renderVoices); document.getElementById('voice-search').addEventListener('input', renderVoices); // Calculator listeners document.getElementById('calc-calls').addEventListener('input', updateMonthlyCalc); document.getElementById('calc-duration').addEventListener('input', updateMonthlyCalc); });