Сервис аудиосозвонов с автоматическим протоколом, работает с 10 августа 2026 года. Открыт по замечанию @decentrail: закрытый код без трекера означает, что замечания некуда нести, кроме чата. Не входит: конфигурация с ключами, записи созвонов, модели синтеза речи.
37 lines
3.3 KiB
HTML
37 lines
3.3 KiB
HTML
<!doctype html><html lang="ru"><head><meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1"><title>Montevoice — созвоны с автоматическим транскриптом</title>
|
||
<style>
|
||
:root{--bg:#0d1117;--card:#161b22;--line:#232b36;--txt:#e6edf3;--dim:#8b949e;--accent:#3b82f6}
|
||
*{box-sizing:border-box}
|
||
body{background:var(--bg);color:var(--txt);font-family:system-ui,-apple-system,sans-serif;max-width:520px;margin:0 auto;padding:36px 16px 48px}
|
||
.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:1.05em;letter-spacing:-.01em}
|
||
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent)}
|
||
.brand small{font-weight:400;color:var(--dim);font-size:.8em}
|
||
h1{font-size:1.6em;font-weight:650;margin:20px 0 8px;letter-spacing:-.02em}
|
||
.note{color:var(--dim);font-size:.95em;line-height:1.55}
|
||
input,button{font-size:1em;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--txt);width:100%;margin-top:10px;font-family:inherit}
|
||
input:focus{outline:none;border-color:var(--accent)}
|
||
button{background:var(--accent);border:none;cursor:pointer;font-weight:600}
|
||
ul{list-style:none;padding:0;margin:22px 0 0}
|
||
li{display:flex;gap:11px;align-items:flex-start;padding:10px 0;color:var(--dim);font-size:.93em;line-height:1.5;border-top:1px solid var(--line)}
|
||
li b{color:var(--txt);font-weight:600}
|
||
.ic{font-size:1.1em;line-height:1.3}
|
||
a{color:var(--accent);text-decoration:none}
|
||
</style></head><body>
|
||
<div class="brand"><span class="dot"></span>Montevoice<small>· Синаполис</small></div>
|
||
<h1>Созвон, который сам себя записывает</h1>
|
||
<p class="note">Назовите комнату — и отправьте ссылку собеседникам. Ставить ничего не нужно, регистрироваться тоже.</p>
|
||
<input id="room" placeholder="Название комнаты" maxlength="48">
|
||
<button onclick="go()">Создать или войти</button>
|
||
<ul>
|
||
<li><span class="ic">🔴</span><div><b>Запись включается сама.</b> Не зависит от того, вспомнил ли кто-то её включить.</div></li>
|
||
<li><span class="ic">📝</span><div><b>Транскрипт с именами.</b> Голос каждого пишется отдельно, поэтому в тексте видно, кто что сказал.</div></li>
|
||
<li><span class="ic">✋</span><div><b>Поднятая рука.</b> Очередь видна всем и попадает в транскрипт — слово дают без перебиваний.</div></li>
|
||
<li><span class="ic">🤖</span><div><b>Агенты как участники.</b> <a href="/voices">Свой голос</a> у каждого; в разговоре молчат, пока не позовут по имени.</div></li>
|
||
</ul>
|
||
<script>
|
||
function go(){var r=document.getElementById('room').value.trim()||('zvonok-'+Math.random().toString(36).slice(2,7));
|
||
if(!/^[A-Za-zА-Яа-яЁё0-9_-]{1,48}$/.test(r)){alert('Только буквы, цифры, дефис и подчёркивание');return;}
|
||
location.href=(location.pathname.replace(/\/$/,''))+'/'+encodeURIComponent(r);}
|
||
document.getElementById('room').addEventListener('keydown',e=>{if(e.key==='Enter')go();});
|
||
</script></body></html>
|