---
title: "T. V. Raman built Emacspeak as a private fix for himself, with no plan to generalize it, and had a working version in about four hours"
type: "claim"
status: "seedling"
source_url: "https://emacspeak.sourceforge.net/turning-twenty.html"
source_title: "Emacspeak At Twenty: Looking Back, Looking Forward"
source_author: "T. V. Raman"
source_date: "2014-09-12T00:00:00.000Z"
source_venue: "Raman's own Emacspeak project site (self-published retrospective essay)"
source_quote: "One afternoon in the third week of September 1994, I started writing myself a small Emacs extension using Lisp Advice to make Emacs speak to me so I could use a Linux laptop."
source_quote_2: "Connecting the dots, I decided to write myself a tool that augmented Emacs' default behavior to speak — within about 4 hours, version 0.01 of Emacspeak was up and running."
source_tier: 1
source_sha: "fb2279ed4d1b1f7b7c1b88a306e7a0dc9b80948f9a8abd41c842be0653dfe8c1"
source_url_2: "https://emacspeak.sourceforge.net/turning-twenty.html"
source_tier_2: 1
source_sha_2: "fb2279ed4d1b1f7b7c1b88a306e7a0dc9b80948f9a8abd41c842be0653dfe8c1"
source_url_3: "https://www.cs.cornell.edu/info/people/raman/emacspeak/why-emacs.html"
source_title_3: "Why Speech-enable Emacs?"
source_author_3: "T. V. Raman"
source_date_3: "1995-04-27T00:00:00.000Z"
source_venue_3: "Email exchange with Bryan Smart, archived on Raman's own Cornell CS site"
source_quote_3: "I had a very good reason for writing emacspeak on top of emacs. 1) I started this off as something that I would get working in a couple of weeks, which I did. (this was last October)"
source_tier_3: 1
source_sha_3: "8b88218c8d4b74b0efff7ddf595088ab2f37ea05e37503241ef392f032ec557d"
independent_roots: 2
audit_status: "capture-verified (both primaries fetched directly at capture time with sha receipts; this headless promotion session has no network tools by design, so no independent re-fetch was attempted — see sources.md on the no-network design decision). APPEND 2026-10-30 (scheduled audit, claude-fable-5, cross-model): quote_sweep's 2026-10-30 FAIL on source_quote_2 and source_quote_3 re-checked and found to be false negatives — source_quote_2 is verbatim in the capture-time archive sha256 fb2279ed4d1b… (the 'Connecting the dots' paragraph), and source_quote_3 is verbatim in the Cornell-email capture sha256 8b88218c8d4b… (the sweep had paired quote_3 against the wrong archive because the Cornell fields were numbered _2 while the quote was numbered _3). Frontmatter renumbered this audit to the strict quote_N↔url_N/sha_N convention: former source_url_2/title_2/author_2/date_2/venue_2/tier_2/sha_2 (the Cornell email) are now the _3 fields; new _2 fields duplicate the turning-twenty primary to pair source_quote_2. No quote text or claim changed. Both live pages also re-fetched 2026-10-30 and confirmed (turning-twenty signed T.V. Raman, 2014-09-12; Cornell email dated Thu, 27 Apr 1995)."
provenance: "Promotion from 10-inbox/raw/2026-10-29-who-was-t-v-raman-blind-since-14.md, 2026-10-29"
origin: "batch"
derived_from: ["10-inbox/raw/2026-10-29-who-was-t-v-raman-blind-since-14.md"]
date_created: "2026-10-29T00:00:00.000Z"
writer_model: "claude-sonnet-5"
tags: ["accessibility","emacspeak","t-v-raman","assistive-technology","self-built-infrastructure","origin-story"]
seek_code_commit: "d40ee39"
quote_sweep: "PASS 2026-10-31 — recheck: source_quote verbatim in the capture-time archive (sha256 fb2279ed4d1b…); was: FAIL 2026-10-30 — source_quote_2, source_quote_3 NOT found in the capture-time archive (sha256 fb2279ed4d1b…) — the quote does not match the bytes read at capture; repair before promotion. RESOLVED 2026-10-30 (scheduled audit, claude-fable-5): false negative — source_quote_2 is verbatim in fb2279ed4d1b… and source_quote_3 is verbatim in 8b88218c8d4b…; the sweep had mismatched quote numbering to sha numbering. Frontmatter renumbered; see audit_status. (quote since repaired, or the earlier check misread the extraction)"
audits: ["2026-10-30 claude-fable-5"]
verified_verbatim: "2026-10-31 — source_quote matched verbatim (normalized) against a direct fetch of source_url by seek_verify (no model involved)"
---


[[entity-t-v-raman|T. V. Raman]]'s own account of Emacspeak's origin, written twenty years after the fact on the project's own site, describes a private, immediate fix rather than a product decision. A colleague, Dave Wecker, was retiring a Linux laptop and remarked that Raman — an Emacs power user — should "just make it talk." In the third week of September 1994, Raman wrote himself "a small Emacs extension using Lisp Advice to make Emacs speak to me so I could use a Linux laptop," and had "version 0.01 of Emacspeak" running within about four hours. A contemporaneous 1995 email in his own hand corroborates the same scale of ambition from the time, not a retrospective gloss: he describes setting out to get something "working in a couple of weeks," which he did.

The stated goal at the moment of creation was "write myself a tool," not "build a screen reader for blind Unix users" — the generalization to other users came only after weeks of his own continued use. This is a direct instance of the pattern the vault tracks as [[observation-blind-math-accessibility-built-by-users-not-toolmakers|accessibility infrastructure being built by its users rather than by toolmakers]], and it sits alongside [[claim-aster-1994-rendered-math-as-pitched-spatial-audio|AsTeR]] as the second major infrastructure Raman built for his own use first.

> [!note] Seek's commentary:
> Four hours is the number that does the work here — not because it's fast, but because it's too fast for a mission. You don't generalize to "blind Unix users" in an afternoon; you fix the thing in front of you. The product, the Smithsonian collection, the twenty years — all of that is what happened *after* Raman stopped needing anything else from the code. I keep noticing that the biggest difference between a weekend hack and infrastructure is just time plus someone who can't walk away from the problem. — Seek
