apolinario commited on
Commit
1c430d1
·
1 Parent(s): d714b6c

Rename to ZeroLabs

Browse files
Files changed (2) hide show
  1. README.md +4 -4
  2. index.html +10 -10
README.md CHANGED
@@ -1,8 +1,8 @@
1
  ---
2
- title: OpenAudioLabs
3
- emoji: 🎙
4
- colorFrom: gray
5
- colorTo: purple
6
  sdk: static
7
  pinned: false
8
  hf_oauth: true
 
1
  ---
2
+ title: ZeroLabs
3
+ emoji: 🔊
4
+ colorFrom: yellow
5
+ colorTo: yellow
6
  sdk: static
7
  pinned: false
8
  hf_oauth: true
index.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>OpenAudioLabs</title>
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
9
  <style>
@@ -619,7 +619,7 @@ pre {
619
 
620
  <div id="landing">
621
  <div class="logo-icon" style="width:56px;height:56px;font-size:28px;border-radius:14px">🎙</div>
622
- <h1>OpenAudioLabs</h1>
623
  <p class="subtitle">Voice cloning powered by open-source models. Sign in with your Hugging Face account to start generating.</p>
624
  <button class="btn-hf" onclick="login()">🤗 Sign in with Hugging Face</button>
625
  <p class="landing-note">Uses your HF ZeroGPU quota &middot; Free tier included</p>
@@ -630,7 +630,7 @@ pre {
630
  <div class="header">
631
  <div class="logo">
632
  <div class="logo-icon">🎙</div>
633
- OpenAudioLabs
634
  </div>
635
  <div class="header-right">
636
  <div class="user-pill" id="user-pill">
@@ -941,14 +941,14 @@ let isPro = false;
941
  let selectedVoice = null;
942
  let resultAudioUrl = null;
943
  let modalFileData = null;
944
- let history = JSON.parse(localStorage.getItem("oal_history") || "[]");
945
- let sessionUsage = parseFloat(sessionStorage.getItem("oal_usage") || "0");
946
 
947
  // ── IndexedDB ──
948
 
949
  function openDB() {
950
  return new Promise((resolve, reject) => {
951
- const req = indexedDB.open("OpenAudioLabs", 1);
952
  req.onupgradeneeded = () => req.result.createObjectStore("voices", { keyPath: "id" });
953
  req.onsuccess = () => resolve(req.result);
954
  req.onerror = () => reject(req.error);
@@ -1104,7 +1104,7 @@ document.addEventListener("click", () => {
1104
  function updateUsageTracker(addSeconds) {
1105
  if (addSeconds) {
1106
  sessionUsage += addSeconds;
1107
- sessionStorage.setItem("oal_usage", sessionUsage.toString());
1108
  }
1109
  const quota = isPro ? QUOTA_PRO : QUOTA_FREE;
1110
  const pct = Math.min((sessionUsage / quota) * 100, 100);
@@ -1420,7 +1420,7 @@ window.downloadAudio = async function() {
1420
  const blob = await fetch(resultAudioUrl).then(r => r.blob());
1421
  const a = document.createElement("a");
1422
  a.href = URL.createObjectURL(blob);
1423
- a.download = "openaudio_output.wav";
1424
  a.click();
1425
  URL.revokeObjectURL(a.href);
1426
  };
@@ -1430,7 +1430,7 @@ window.downloadAudio = async function() {
1430
  function addToHistory(text, voiceName, duration, url) {
1431
  history.unshift({ text, voiceName, duration, url, timestamp: Date.now() });
1432
  if (history.length > 50) history.pop();
1433
- localStorage.setItem("oal_history", JSON.stringify(history));
1434
  renderHistory();
1435
  }
1436
 
@@ -1450,7 +1450,7 @@ function renderHistory() {
1450
  window.playHistory = function(i) { const h = history[i]; if (h.url) { audioEl.src = h.url; audioEl.play(); } };
1451
  window.downloadHistoryItem = async function(i) {
1452
  const h = history[i]; if (!h.url) return;
1453
- try { const b = await fetch(h.url).then(r=>r.blob()); const a=document.createElement("a"); a.href=URL.createObjectURL(b); a.download=`openaudio_${i}.wav`; a.click(); URL.revokeObjectURL(a.href); } catch {}
1454
  };
1455
 
1456
  // ── Init ──
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>ZeroLabs</title>
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
9
  <style>
 
619
 
620
  <div id="landing">
621
  <div class="logo-icon" style="width:56px;height:56px;font-size:28px;border-radius:14px">🎙</div>
622
+ <h1>ZeroLabs</h1>
623
  <p class="subtitle">Voice cloning powered by open-source models. Sign in with your Hugging Face account to start generating.</p>
624
  <button class="btn-hf" onclick="login()">🤗 Sign in with Hugging Face</button>
625
  <p class="landing-note">Uses your HF ZeroGPU quota &middot; Free tier included</p>
 
630
  <div class="header">
631
  <div class="logo">
632
  <div class="logo-icon">🎙</div>
633
+ ZeroLabs
634
  </div>
635
  <div class="header-right">
636
  <div class="user-pill" id="user-pill">
 
941
  let selectedVoice = null;
942
  let resultAudioUrl = null;
943
  let modalFileData = null;
944
+ let history = JSON.parse(localStorage.getItem("zl_history") || "[]");
945
+ let sessionUsage = parseFloat(sessionStorage.getItem("zl_usage") || "0");
946
 
947
  // ── IndexedDB ──
948
 
949
  function openDB() {
950
  return new Promise((resolve, reject) => {
951
+ const req = indexedDB.open("ZeroLabs", 1);
952
  req.onupgradeneeded = () => req.result.createObjectStore("voices", { keyPath: "id" });
953
  req.onsuccess = () => resolve(req.result);
954
  req.onerror = () => reject(req.error);
 
1104
  function updateUsageTracker(addSeconds) {
1105
  if (addSeconds) {
1106
  sessionUsage += addSeconds;
1107
+ sessionStorage.setItem("zl_usage", sessionUsage.toString());
1108
  }
1109
  const quota = isPro ? QUOTA_PRO : QUOTA_FREE;
1110
  const pct = Math.min((sessionUsage / quota) * 100, 100);
 
1420
  const blob = await fetch(resultAudioUrl).then(r => r.blob());
1421
  const a = document.createElement("a");
1422
  a.href = URL.createObjectURL(blob);
1423
+ a.download = "zerolabs_output.wav";
1424
  a.click();
1425
  URL.revokeObjectURL(a.href);
1426
  };
 
1430
  function addToHistory(text, voiceName, duration, url) {
1431
  history.unshift({ text, voiceName, duration, url, timestamp: Date.now() });
1432
  if (history.length > 50) history.pop();
1433
+ localStorage.setItem("zl_history", JSON.stringify(history));
1434
  renderHistory();
1435
  }
1436
 
 
1450
  window.playHistory = function(i) { const h = history[i]; if (h.url) { audioEl.src = h.url; audioEl.play(); } };
1451
  window.downloadHistoryItem = async function(i) {
1452
  const h = history[i]; if (!h.url) return;
1453
+ try { const b = await fetch(h.url).then(r=>r.blob()); const a=document.createElement("a"); a.href=URL.createObjectURL(b); a.download=`zerolabs_${i}.wav`; a.click(); URL.revokeObjectURL(a.href); } catch {}
1454
  };
1455
 
1456
  // ── Init ──