Spaces:
Running
Running
Rename products (unique names)
Browse files- README.md +3 -3
- app.js +2 -2
- format.js +1 -1
- index.html +5 -5
- worker.js +1 -1
README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
emoji: 🤫
|
| 4 |
colorFrom: green
|
| 5 |
colorTo: gray
|
|
@@ -24,7 +24,7 @@ models:
|
|
| 24 |
thumbnail: https://huggingface.co/spaces/CyberMax-tools/hushscribe/resolve/main/thumbnail.png
|
| 25 |
---
|
| 26 |
|
| 27 |
-
#
|
| 28 |
|
| 29 |
Drop an audio or video file (or record from your mic) and get a timestamped transcript, **without uploading anything**. OpenAI's Whisper runs inside your browser with [transformers.js](https://github.com/huggingface/transformers.js): WebGPU when your browser has it, otherwise CPU (WASM).
|
| 30 |
|
|
@@ -40,4 +40,4 @@ Good for interviews, lectures, podcasts, voice memos, meeting recordings and vid
|
|
| 40 |
- [CyberMax MCP & API kit for AI agents](https://huggingface.co/spaces/CyberMax-tools/cybermax-dev-kit)
|
| 41 |
- Pay-per-result web data tools on the [Apify Store](https://apify.com/cybermax)
|
| 42 |
|
| 43 |
-
|
|
|
|
| 1 |
---
|
| 2 |
+
title: Hearlark — Private Audio Transcription
|
| 3 |
emoji: 🤫
|
| 4 |
colorFrom: green
|
| 5 |
colorTo: gray
|
|
|
|
| 24 |
thumbnail: https://huggingface.co/spaces/CyberMax-tools/hushscribe/resolve/main/thumbnail.png
|
| 25 |
---
|
| 26 |
|
| 27 |
+
# Hearlark: private audio & video transcription
|
| 28 |
|
| 29 |
Drop an audio or video file (or record from your mic) and get a timestamped transcript, **without uploading anything**. OpenAI's Whisper runs inside your browser with [transformers.js](https://github.com/huggingface/transformers.js): WebGPU when your browser has it, otherwise CPU (WASM).
|
| 30 |
|
|
|
|
| 40 |
- [CyberMax MCP & API kit for AI agents](https://huggingface.co/spaces/CyberMax-tools/cybermax-dev-kit)
|
| 41 |
- Pay-per-result web data tools on the [Apify Store](https://apify.com/cybermax)
|
| 42 |
|
| 43 |
+
Hearlark © 2026 CyberMax. Uses Whisper model weights (Apache-2.0) converted to ONNX by onnx-community, and transformers.js (Apache-2.0). Not affiliated with OpenAI or Hugging Face. Accuracy depends on audio quality; check names and numbers before publishing a transcript.
|
app.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
//
|
| 2 |
import { toSegments, toTxt, toSrt, toVtt, toJson, clock, expectedChunks, toMono, baseName } from './format.js';
|
| 3 |
|
| 4 |
const $ = (id) => document.getElementById(id);
|
|
@@ -80,7 +80,7 @@ function render(done) {
|
|
| 80 |
|
| 81 |
function download(fmt) {
|
| 82 |
if (!segments.length) return;
|
| 83 |
-
const meta = { source: sourceName, model: els.model.value, task: els.task.value, language: els.language.value || 'auto', createdWith: '
|
| 84 |
const body = { txt: () => toTxt(segments), srt: () => toSrt(segments), vtt: () => toVtt(segments), json: () => toJson(segments, meta) }[fmt]();
|
| 85 |
const type = { txt: 'text/plain', srt: 'application/x-subrip', vtt: 'text/vtt', json: 'application/json' }[fmt];
|
| 86 |
const a = document.createElement('a');
|
|
|
|
| 1 |
+
// Hearlark UI: decode audio locally, hand it to the worker, render and export the transcript. © 2026 CyberMax.
|
| 2 |
import { toSegments, toTxt, toSrt, toVtt, toJson, clock, expectedChunks, toMono, baseName } from './format.js';
|
| 3 |
|
| 4 |
const $ = (id) => document.getElementById(id);
|
|
|
|
| 80 |
|
| 81 |
function download(fmt) {
|
| 82 |
if (!segments.length) return;
|
| 83 |
+
const meta = { source: sourceName, model: els.model.value, task: els.task.value, language: els.language.value || 'auto', createdWith: 'Hearlark by CyberMax' };
|
| 84 |
const body = { txt: () => toTxt(segments), srt: () => toSrt(segments), vtt: () => toVtt(segments), json: () => toJson(segments, meta) }[fmt]();
|
| 85 |
const type = { txt: 'text/plain', srt: 'application/x-subrip', vtt: 'text/vtt', json: 'application/json' }[fmt];
|
| 86 |
const a = document.createElement('a');
|
format.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
//
|
| 2 |
// © 2026 CyberMax.
|
| 3 |
|
| 4 |
/** Seconds → "HH:MM:SS,mmm" (SRT) or "HH:MM:SS.mmm" (VTT). */
|
|
|
|
| 1 |
+
// Hearlark: transcript formatting (TXT, SRT, VTT, JSON). Pure functions, no DOM, so they run in Node tests too.
|
| 2 |
// © 2026 CyberMax.
|
| 3 |
|
| 4 |
/** Seconds → "HH:MM:SS,mmm" (SRT) or "HH:MM:SS.mmm" (VTT). */
|
index.html
CHANGED
|
@@ -3,13 +3,13 @@
|
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1">
|
| 6 |
-
<title>
|
| 7 |
<meta name="description" content="Free private audio and video transcription that runs in your browser with Whisper. No upload, no sign-up. Export TXT, SRT subtitles, VTT and JSON. 99 languages, translate to English. By CyberMax.">
|
| 8 |
<meta name="keywords" content="speech to text, audio transcription, whisper, subtitles, srt generator, vtt, transcribe mp3, transcribe video, private transcription, offline, webgpu">
|
| 9 |
-
<meta property="og:title" content="
|
| 10 |
<meta property="og:description" content="Whisper speech-to-text that never uploads your audio. TXT, SRT, VTT and JSON export. Free, by CyberMax.">
|
| 11 |
<script type="application/ld+json">
|
| 12 |
-
{"@context":"https://schema.org","@type":"WebApplication","name":"
|
| 13 |
</script>
|
| 14 |
<style>
|
| 15 |
:root{--bg:#f7f7f4;--card:#ffffff;--ink:#1c1d1f;--muted:#5f6368;--line:#e2e2dc;--accent:#2f6b4f;--accent-ink:#ffffff;--soft:#e9f2ec;--warn:#8a4b00;--code:#f1f1ec}
|
|
@@ -49,7 +49,7 @@ footer{font-size:13px;color:var(--muted);margin-top:28px}
|
|
| 49 |
</head>
|
| 50 |
<body>
|
| 51 |
<main>
|
| 52 |
-
<h1>
|
| 53 |
<p class="sub">Private speech-to-text. Whisper runs <b>inside your browser</b>: your audio is never uploaded. Free, no sign-up.</p>
|
| 54 |
|
| 55 |
<section class="card">
|
|
@@ -128,7 +128,7 @@ footer{font-size:13px;color:var(--muted);margin-top:28px}
|
|
| 128 |
</section>
|
| 129 |
|
| 130 |
<footer>
|
| 131 |
-
|
| 132 |
</footer>
|
| 133 |
</main>
|
| 134 |
<script type="module" src="./app.js"></script>
|
|
|
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1">
|
| 6 |
+
<title>Hearlark — Private Audio Transcription</title>
|
| 7 |
<meta name="description" content="Free private audio and video transcription that runs in your browser with Whisper. No upload, no sign-up. Export TXT, SRT subtitles, VTT and JSON. 99 languages, translate to English. By CyberMax.">
|
| 8 |
<meta name="keywords" content="speech to text, audio transcription, whisper, subtitles, srt generator, vtt, transcribe mp3, transcribe video, private transcription, offline, webgpu">
|
| 9 |
+
<meta property="og:title" content="Hearlark — private transcription in your browser">
|
| 10 |
<meta property="og:description" content="Whisper speech-to-text that never uploads your audio. TXT, SRT, VTT and JSON export. Free, by CyberMax.">
|
| 11 |
<script type="application/ld+json">
|
| 12 |
+
{"@context":"https://schema.org","@type":"WebApplication","name":"Hearlark","applicationCategory":"MultimediaApplication","operatingSystem":"Any (modern browser)","description":"Private speech-to-text in the browser with OpenAI Whisper via transformers.js. Audio never leaves the device. Exports TXT, SRT, VTT and JSON.","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"author":{"@type":"Organization","name":"CyberMax"}}
|
| 13 |
</script>
|
| 14 |
<style>
|
| 15 |
:root{--bg:#f7f7f4;--card:#ffffff;--ink:#1c1d1f;--muted:#5f6368;--line:#e2e2dc;--accent:#2f6b4f;--accent-ink:#ffffff;--soft:#e9f2ec;--warn:#8a4b00;--code:#f1f1ec}
|
|
|
|
| 49 |
</head>
|
| 50 |
<body>
|
| 51 |
<main>
|
| 52 |
+
<h1>Hearlark</h1>
|
| 53 |
<p class="sub">Private speech-to-text. Whisper runs <b>inside your browser</b>: your audio is never uploaded. Free, no sign-up.</p>
|
| 54 |
|
| 55 |
<section class="card">
|
|
|
|
| 128 |
</section>
|
| 129 |
|
| 130 |
<footer>
|
| 131 |
+
Hearlark © 2026 CyberMax. Runs OpenAI's Whisper models (Apache-2.0) converted to ONNX by the <a href="https://huggingface.co/onnx-community" target="_blank" rel="noopener">onnx-community</a>, via <a href="https://github.com/huggingface/transformers.js" target="_blank" rel="noopener">transformers.js</a> (Apache-2.0). Not affiliated with OpenAI or Hugging Face.
|
| 132 |
</footer>
|
| 133 |
</main>
|
| 134 |
<script type="module" src="./app.js"></script>
|
worker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
//
|
| 2 |
// Audio arrives as 16 kHz mono Float32Array; nothing is uploaded anywhere. © 2026 CyberMax.
|
| 3 |
import { pipeline, WhisperTextStreamer, env } from 'https://cdn.jsdelivr.net/npm/@huggingface/transformers@4.3.0';
|
| 4 |
|
|
|
|
| 1 |
+
// Hearlark worker: runs Whisper in the browser with transformers.js (WebGPU when available, else WASM).
|
| 2 |
// Audio arrives as 16 kHz mono Float32Array; nothing is uploaded anywhere. © 2026 CyberMax.
|
| 3 |
import { pipeline, WhisperTextStreamer, env } from 'https://cdn.jsdelivr.net/npm/@huggingface/transformers@4.3.0';
|
| 4 |
|