Skip to content

Instantly share code, notes, and snippets.

@stanographer
Last active October 28, 2020 17:54
Show Gist options
  • Save stanographer/0d4b70e51275c97703c74ac5171fdb1f to your computer and use it in GitHub Desktop.
Save stanographer/0d4b70e51275c97703c74ac5171fdb1f to your computer and use it in GitHub Desktop.

Aloft

GitHub Repo

Video Demonstration

Founder: Stanley Sakai

Graphics:

Lead Developer:

Tech Support:

Overview

Aloft is a web-based captioning app that allows realtime stenographers to share their verbatim transcription to remote participants over the Internet or to devices on the same network if run locally. It was designed with the live captioning use case in mind, prioritizing instantaneous delivery of text, and allowing the end user to easily change font settings to suit their preference or disability (i.e. if they also have a visual disability requiring specific colors or sizes for maximum readability).

When the end user navigates to an Aloft captioning page, they are snapped to the bottom so that they are always viewing the most recent text. Additionally, they are able to scroll upward at any time and view a full history of what was said.

Why

The stenographic profession is a very small one and there exists only a handful of companies that produce in steno hardware or software. In general, said products are extortionately expensive, locked down, and outdated.

There is little impetus for these companies to continually innovate because the industry as a whole is technologically stagnant on the part of both its users and producers. Most reporters lack technological prowess to leverage more advanced features and thus don't ask for them from companies. All modern commercial computer-aided translation (CAT) software which convert steno into readable text run exclusively on Windows so there is little to no support for any other operating system.

Of those that do support other platforms like iOS (i.e. Bridge, CaseViewNet, LiveNote), their viewer apps are clumsy, hard to customize, and generally appear as though they have not been updated since the '90s.

Moreover, most existing platforms designed to share realtime output of stenographers were designed with legal reporting in mind. There are time-based buffers, intervalled retrieval of text, and no ability to store transcriptions on cloud. While these might be welcome features for a less competent reporter who is afforded an extra couple seconds to fix errors before the text is sent out, these things make the experience less than ideal for a deaf person who needs the text to appear as instantly as possible in order to fully participate. In summary, these softwares were built for court reporters and not the captioning use case.

Of the existing systems that were designed for captioning, all of them are inexcusably yucky looking, lack advanced character support as they all only support ANSI (bye emojis or non-Latin text), and do not run on macOS on the stenographer side.

Overarching Goals

  • Create a platform that is beautiful, modern, and easy to use for both the end user as well as the stenographer.
  • Build with Web and Mobile First in mind. Sharing transcripts (whether live or post-facto) should be easy and seamless. Stenographers should be able to tweet out a link to captions within the app. Emailing of transcript files should occur in the app without the need to download it, and attach it to an email manually. All aspects of Aloft should adjust depending on the device and viewport on which it is being viewed.
  • Supports both direct text entry for users of Plover and listening to text sent to a local TCP address/port, which is how most commercial steno software outputs text.

Imagery, Theme, Branding

Clouds, air, free, floating, mountains, light greens, oranges, and dark/grayish blues. App should only ever be referred to as simply "Aloft." Do not refer to it with its URL.

Specs

Backend & Database

Aloft is a Node-based application. App.js runs an Express server, which handles all of the routing on the backend. All data is stored into MongoDB into two collections. Users contains all the user data: username, passwords, email addresses, personal settings and the like. Events contains all the events the user has created and each entry contains info like the slug (the short name of the event that is then incorporated into the URL to point to it), the stenographer who created it, whether it's hidden, et cetera. Data from Mongo is communicated to the front end using Mongoose, a Node package designed specifically for this purpose.

Text Sharing

Real-time sharing of text is handled through a package called ShareDB. It uses a modified Websockets connection that ensures correct order of delivery. Older versions of Websockets were notoriously bad at this. As sometimes the text being entered by the stenographer is fast enough to be treated by the backend as simultaneous, previous versions were prone to deletions or transpositions ("Hey, hwoa re youd ion?g" instead of "Hey, how are you doing?").

Frontend

Front-end dynamic display of data or DOM modifications are handled in Angular and jQuery. The plan is to eventually migrate to React. Template files and layouts for the view are written in Jade. Styles are written in plain CSS.

Industry Terminology

  • Brief: An arbitrary shortform used in steno writing assigned to difficult or oft-recurring terms or phrases.
  • captioning: (Technically) Transcribed text of dialogue that is shown on a video feed. But for us at Aloft, it can mean real-time transcription in any setting that facilitates communication.
  • CART: Acronym for "computer-aided realtime translation" or sometimes "computer-aided realtime transcription" depending on whom you ask. Basically means steno-powered transcription used for captioning purposes (especially for the deaf). It's a somewhat outdated term but it is still prevalent within the industry, which tends to only use "captioning" to refer to transcribed dialogue superimposed over a video feed.
  • CART provider: A captioner/stenographer who specializes in CART (realtime captioning for the deaf).
  • Deaf/deaf: Capital-D Deaf refers to a deaf (or sometimes non-deaf person in the medical sense) person who has adopted Deaf culture and uses sign language. Little-d deaf simply refers to the physiological state of the inability to hear well and/or understand spoken language. Use capital-D Deaf only when referring to the culture or identity, and little-d otherwise.
  • NCRA: Acronym for the National Court Reporters Association. It is the authority on licensure and professional practices of stenographers in the United States.
  • Palantype: A chorded text input system analogous to steno primarily used in the UK.
  • Stenography: The act of recording human speech into text via a symbolic, abbreviated method.
  • steno machine or stenotype: The keyboard stenographers use to write shorthand. Not to be confused with Stenograph, which is a maker of steno machines. Though it has become somewhat of an eponym to describe steno machines broadly including those that aren't made by them.
  • STTR: Acronym for "speech-to-text reporter." Synonymous with CART, but primarily used in the UK.

Language Use

  • The user providing real-time captioning should always be called "stenographer." While it is meant primarily for captioners, we don't want to exclude legal reporters.
  • The terms "CART" and "CART provider" should be avoided in favor of "captioning" and "captioner." Real-time captioner/captioning are acceptable variants.
  • If one must mention non-captioner professionals in legal settings, "legal reporter" should be used over "court reporter."
  • The term "transcript" should be only used to describe legal transcripts that are certified verbatim by a licensed court reporter. For byproducts of captioning, "transcription" or simply "file" are preferred. There are legal implications associated with calling something a "transcript" and since captioners generally do not go back to verify that what was spoken is represented 100% faithfully in the resulting text, the term "transcript" should be avoided.
  • The act of producing text stenographically should always be referred to as "writing" in the noun form and "to write" as a verb. This comes from the original term, which was to "write shorthand." Never refer to a stenographer's work as "typing" or the act as "to type." "Transcription" and "transcribe" are also acceptable terms. In casual settings, "stenoing" can also be used.
  • Realtime: the product of instantly translated machine shorthand via computer.

    "Norma has really great realtime."

  • Real-time: describes a process that happens live or simultaneously.

    "Aloft is an app that displays real-time verbatim transcriptions for users to read on a variety of devices."

Proposed Pricing Scheme

Competitors tend to price by the minute for caption uptime. Aloft should have a simpler pricing scheme consisting of a tiered monthly rate. So maybe $100/mo. gives you two accounts and larger firms with more than two stenographers on their team would pay $300 for more accounts.

Unknowns, 1-year plan, market nature. 1-2 month work plan. deficit between what I'm doing and what Jack knows. Hours per week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment