Speech-to-text comparison
Try Fish Audio
00:00.0 / --:--

Compare speech-to-text, side by side

Open a Fish Audio or ElevenLabs transcription result with its audio: listen, and read every transcript in sync with the recording.
Files are read in your browser and never uploaded.

Supported files and URL parameters
  • Results (one or more; the format is detected): a Fish Audio /v1/asr response (speaker_turns + segments, or segments only) or an ElevenLabs /v1/speech-to-text response (words).
  • Reference activity (optional): speech activity per track, e.g. {"speakers":[{"label","regions":[[s,e],…]}]}, a diarization output (diarization), or transcript rows with speaker/start/end.

When the page is served from the same static folder as the files, relative paths work:

asr-viewer.html?audio=audio.mp3&ref=reference-activity.json&data=response.json&label=Fish&data=elevenlabs.json&label=ElevenLabs

Or use a manifest (its relative paths resolve against the manifest; an optional title names the recording):

asr-viewer.html?manifest=manifest.json

{"title":"Team meeting","audio":"audio.mp3","reference":"reference-activity.json","results":[{"label":"Fish Audio","url":"response.json"},{"label":"ElevenLabs Scribe v2","url":"elevenlabs.json"}]}

Optional manifest keys for a page shown to customers: highlights (up to four headline figures, each {"label","note","values":[…in result order…]}; [] shows none, no key shows automatic counts), highlights_note (the line that says where the figures come from), highlights_link ({"text","url"}), disclosure (one short line of plain text under the recording name, such as who the page is for or where the recording comes from) and "present": true (hides Open, Add result, rename, remove and Debug; ?present=0 brings them back).