Skip to content
This repository was archived by the owner on Mar 5, 2024. It is now read-only.

giulianopz/webcaptioner

 
 

Repository files navigation

Web Captioner

Web Captioner

A speech-to-text app by Curt Grimes.

Web Captioner

Web Captioner is a speech-to-text web service using the Web Speech API to transcribe microphone input in real time.

This is a stripped-down version of the original web service created by Curt Grimes who stopped maintaining Web Captioner on October 31, 2023, generously donating its source code to the community.

I resumed this app to offer its most valuable feature: a simple interface to the Web Speech API of Google Chrome for translating speech to text for free, optionally saving the transcript to a file.

This single feature is essential for many people, especially those who are deaf or hard of hearing because they have no other way to access precious contents on the web unless paying some expensive CART or Speech-to-Text services.

Any other features is temporarily disabled and I have no plans to restore them.

If you find Web Captioner useful, please find the time to say 'thank you' to its author.

Running the project

The bulk of the Web Captioner project (which was previously available at webcaptioner.com/captioner) is a Vue 2 / Nuxt (version 2) app located under the ./app folder.

Prerequisites

  1. Node v20.9.0 - This runs successfully with Node v20.9.0 (If you have nvm you can run nvm install v20.9.0).
  2. Python 2 - To build some dependencies you will need Python 2 available in your environment.

Local development server

To run the Nuxt.js development server:

  1. Clone this repository
  2. Make sure you meet the prerequisites above
  3. cd ./app
  4. Run task install
  5. Run task serve
  6. Load the website in Google Chrome at the path printed to the console.
  7. You will need to update Chrome to treat your dev server as a secure origin in order for Chrome to allow you to grant the page the microphone permission:
    1. Type chrome://flags/#unsafely-treat-insecure-origin-as-secure in the address bar
    2. Copy and paste the dev server origin (something that looks like http://192.168.1.200:8080) into the text box.
    3. Click "Enable" next to the text box.
    4. Save and relaunch the browser.

Contributing

I'm not a JS person, so your help is more than welcome here. If you can, please consider contributing to the project hosted on GitHub.

Development History

This project was open sourced on October 31, 2023.

Curt Grimes have chosen to provide the full commit history for those that are interested in seeing the course of Web Captioner's development over the years. Changes related to the static site part of the repo have been removed for simplicity.

Some relevant changes in the commit history:

  1. eee704fa (Mar 18, 2017) - The first commit, which used Google's Web Speech API Demonstration page as a starting point.
  2. 2f96e233 (Jun 21, 2017) - Starting to add Bootstrap and some other UI improvements.
  3. fc566bd9 (Jul 2, 2017) - Starting to add a blog and other pages on the static site part of the codebase (the static site has been removed from this source code release for simplicity).
  4. cad70d18 (Dec 25, 2017) - Dockerize the app and set up some auto deployment to AWS.
  5. f7ab9f88 (Mar 24, 2018) - Began adding (and learning 😉) Vue.
  6. 4e0ca506 (Apr 9, 2018) - Added the ability for settings to be saved to local storage.
  7. d7cd5926 (Apr 10, 2018) - Began working on Chromecast integration (got it working at bfcab4a1).
  8. 7056ef46 (May 6, 2018) - Starting vMix integration implementation.
  9. 51419d1c (Jun 23, 2018) - Add start of an experiments section.
  10. 0f04ba61 (Jun 27, 2018) - Add ability to change fonts.
  11. 06fc0e98 (Aug 31, 2018) - Begin using Nuxt.
  12. fea294d6 (Sep 1, 2018) - Start adding the ability to call a webhook with caption data.
  13. 8e43c17a (Sep 2, 2018) - Add ability to export and restore settings.
  14. 83cdb0c0 and d8f226cb (Sep 11, 2018) - Add the start of a typing mode which was never completely finished.
  15. fe756717 (Sep 12, 2018) - Begin some work to make the Web Captioner interface support languages other than English.
  16. 00b5b2e8 (Oct 1, 2018) - Initial work supporting the "share captions" feature/experiment.
  17. 59855af0 (Oct 29, 2018) - Add Dropbox integration.
  18. 28ba1a76 (Nov 23, 2018) - Add a heuristic for attempting to "undo" censorship applied by Chrome's implementation of the Web Speech API.
  19. 28db2c81 (Apr 26, 2019) - Start to add Firebase for signing in and saving user settings.
  20. b6728eb9 (Apr 30, 2019) - Add ability to have vanity links in the "share captions" feature/experiment.
  21. ac6259eb (Oct 26, 2019) - Add the start of some work for converting the output from the web speech API into a SRT file. Further improved in 1ceaed2c and 08b40b10.
  22. cb69766b (Jun 14, 2020) - Add start of Zoom integration.
  23. 00844325 (Jun 23, 2020) - Add experiment where it speaks back what is captioned.
  24. 703dd15a (Sep 3, 2020) - Start of the work for the "channels" feature to support different integrations.
  25. b2bbc2a4 (Sep 3, 2020) - Start of YouTube integration.
  26. 9a477bca (Sep 7, 2020) - Start of OBS integration.
  27. 90e43765 (Sep 8, 2020) - Start of FAB Subtitler integration.
  28. fae5f2e4 (Jun 3, 2021) - Add ability to scroll up during live transcription and without being snapped back to the bottom.

Copyright and License

Code and documentation copyright 2017-present by Curt Grimes. Code released under the MIT License.

About

A speech-to-text app using the Web Speech API.

Resources

License

Stars

Watchers

Forks

Languages

  • Vue 66.7%
  • JavaScript 29.6%
  • SCSS 3.1%
  • CSS 0.3%
  • Shell 0.3%
  • Dockerfile 0.0%