├── shush ├── bun.lockb ├── .eslintrc.json ├── .env.example ├── app │ ├── favicon.ico │ ├── tryit │ │ ├── [call_id] │ │ │ ├── reqFail.tsx │ │ │ ├── loading.tsx │ │ │ ├── reqProgress.tsx │ │ │ └── page.tsx │ │ └── page.tsx │ ├── layout.tsx │ ├── globals.css │ └── page.tsx ├── next.config.js ├── postcss.config.js ├── lib │ ├── utils.ts │ └── hooks │ │ └── use-copy-to-clipboard.tsx ├── components │ ├── footer.tsx │ ├── share-url.tsx │ ├── python-logo.tsx │ ├── ui │ │ ├── button.tsx │ │ ├── tabs.tsx │ │ ├── codeblock.tsx │ │ └── dialog.tsx │ ├── data-viewer.tsx │ ├── navbar.tsx │ ├── stats.tsx │ ├── audio-submit.tsx │ ├── waveform.tsx │ └── code-host.tsx ├── components.json ├── .gitignore ├── public │ ├── vercel.svg │ └── next.svg ├── tsconfig.json ├── package.json ├── README.md └── tailwind.config.js ├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md └── modal ├── modal_app.py └── shush.py /shush/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arihanv/Shush/HEAD/shush/bun.lockb -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /shush/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["next/babel","next/core-web-vitals"] 3 | } 4 | -------------------------------------------------------------------------------- /shush/.env.example: -------------------------------------------------------------------------------- 1 | NEXT_PUBLIC_MODAL_URL=https://[ORG_NAME]--[STUB_NAME]-entrypoint.modal.run -------------------------------------------------------------------------------- /shush/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arihanv/Shush/HEAD/shush/app/favicon.ico -------------------------------------------------------------------------------- /shush/next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {} 3 | 4 | module.exports = nextConfig 5 | -------------------------------------------------------------------------------- /shush/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /shush/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /shush/app/tryit/[call_id]/reqFail.tsx: -------------------------------------------------------------------------------- 1 | export default function ReqFail() { 2 | return ( 3 |
22 | {host}/{call_id}
23 |
24 |
28 | {chunk.text}
38 |39 | {chunk.timestamp[0]}s - {chunk.timestamp[1]}s 40 |
41 |{JSON.stringify(data[0], null, 2)}
49 | 19 | One of the easiest and cheapest way to host an on-demand API is 20 | via{" "} 21 | 26 | Modal 27 | 28 | . 29 |
30 |31 | Once you create a free account and download the Python client, 32 | copy or download the base code below. It's on github too:{" "} 33 | 38 | Code 39 | 40 |
41 |145 | After authenticating with the Modal CLI, run this in your 146 | terminal: 147 |
148 |
149 |
150 | $
151 | {"modal deploy modal_app.py"}
152 |
153 |
154 | {`Now you can make requests! Remember to fill in the missing info:`}
157 |
158 |
159 | $
160 | {`curl -X POST -F "audio=@" https://--whisper-v3-demo-entrypoint.modal.run`}
161 |
162 |
163 | 168 | Run WhisperV3 easily with 173 | Insanely Fast Whisper 174 | 175 | . 176 |
177 |
178 | Install insanely-fast-whisper with pipx
179 |
181 |
182 | $pipx install
183 | insanely-fast-whisper
184 |
185 |
186 |
187 | Run inference with flash attention v2. Requires
188 | Amphere GPUs (A10G, A100, etc.) View the full requirements at the
189 | pypi page:{" "}
190 |
195 | flash-attn
196 |
197 |
199 |
200 | $
201 | {
202 | "insanely-fast-whisper --file-name --flash True"
203 | }
204 |
205 |
206 | 207 | If you don't have an Amphere GPU, you can still run WhisperV3 208 | without flash attention. 209 |
210 |
211 |
212 | $
213 | {"insanely-fast-whisper --file-name "}
214 |
215 |
216 |