Git Product home page Git Product logo

speech-to-text-in-tw5's Introduction

Speech-to-text-in-TW5

License Badge release Repo size

First Things First, Browser Support

The Speech-to-Text TW5 plugin works best in Chrome/Chromium environments, as well as in a Node.js TW in run in these same browsers. While still supported, optimal results cannot be guarunteed in iOS's Safari, Samsung Internet, or other mobile apps. Unfortunately, due to lack-of-API support, FireFox and Internet Explorer are not yet supported.


Summary

Speech-to-Text-in-TW5, as the name implies, is a cutting-edge plugin for Jermolene's TiddlyWiki5. The plugin adds the ability to create Tiddlers from just your computer microphone and voice! The speech-to-text plugin is also being updated all the time. Here are the release notes for each release so far, as well as what is planned for later updates!


Releases/Version History

Coming Soon!
  • Activate Plugin from Editor Toolbar!
  • various bug fixes and optimisation
v1.0.5
  • Custom Verbal Commands: define command word and action!
  • Better UI: minor edits for after recording stopped with command
  • Language auto-detection: language defaults to whatever language TW is in!
  • language switch: change plugin language with TW built-in-languages
v1.0.4
  • Support for language change
  • Verbal commands, starting with "command"
  • Safari on iOS support tested
v1.0.3
  • Keyboard shortcut! Alt+Shift+R to start recording!
v1.0.2
  • BUG FIXES: plugin no longer stops listening after pause.
v1.0.1
  • Code Cleanup and minor UI edits.
v1.0.0
  • Minimal Implementation. First Release!

Install

Browser
  1. Install an empty.html from tiddlywiki.com, or use your own existing TiddlyWiki

  2. Go to speech-to-text.finnsoftware.net, the plugin homepage

  3. In the Installation tiddler of the speech-to-text plugin page, drag the "Speech-to-text: Speech to Text for TW5" plugin box into your open empty.html instance, or open existing TiddlyWiki. You now have the plugin! ๐ŸŽ‰
Node.js
  1. Install Node.js and NPM (Node Package Manager) from these instructions

  2. In your terminal, type: npm install -g tiddlywiki

  3. In your terminal again, create a new wiki with tiddlywiki mynewwiki --init server

  4. Then, cd to myneweiki, and open the ``tiddlywiki.info`` file there. Insert the lines ``"Speech-To-Text-in-TW5/plugins/speech-to-text"`` inside the "plugins: [`` section.
  5. OPTIONAL: you may want to tell TiddlyWiki where the plugin will be found so you can store it in any folder. To do so, type export TIDDLYWIKI_PLUGIN_PATH="$HOME/location_of_plugin"
  6. You then can install the latest version of the plugin via This Link as either a .zip or .tar.gz. *Make sure you extract the files to the location you specified in the last step!

  7. That's it! ๐ŸŽ‰ Launch your new wiki with the plugin using tiddlywiki mynewwiki --listen

Getting Started

The Speech-to-Text plugin for TW5 is near limitless in applications in TiddlyWiki. Just like Google Docs already supports, the plugin adds a button to the wiki sidebar so that you can speak into the Mic, and get a transcript of your conversation as a TiddlyWiki Tiddler!

Starting the Plugin to Record

To test it out, follow the install instructions above, or just test out a demo version at speech-to-text.finnsoftware.net. Once loaded, you should see a Microphone button on the wiki sidebar. Click it, and when you see a "Recording Started", you know that it is listening. For any questions, refer to the image below:

Recording Started


Stopping the Plugin from Recording

To stop the plugin, you can click the Mic icon on the wiki sidebar again, or, since >= v1.0.4, you can say "Ok Wiki, stop listening". You will get a message that the "Recording Stopped", and the transcript will be added to a new Tiddler (see image).

Recording stopped


Verbal Commands (v1.0.4 +)

Since version 1.0.4, Speech-to-Text-for-TW5 has supported some kind of verbal command. These are keywords/phrases that can be spoken into the Mic when the plugin is running, to complete some action.

For example, by saying "Ok wiki, stop listening", you can end the listening, the same action that would be taken by clicking the Mic button again. From v1.0.5, user-defined custom commands and keywords are supported. That means you could refactor the command process to understand different words; For example,

"Ok Wiki" could be "Pasta Macaroni", and the word "Tiddler" could now create a new Tiddler in the Wiki instance

It should be noted that the verbal commands are not perfect: the plugin can always misunderstand a word, which will lead to commands not being recognized. At this time, the devs are working on a Dictionary of "sound-alike" words, so that even if the command is misunderstood, it has a higher chance of being recognized. You can help in this effort by logging failed commands, and the word that was misunderstood, and then sending this information to the devs in the form of a New Issue. Thank You!

Note: There is currently a limitation on plugin command-words in that they cannot be the same as the keywords (eg OK Wiki or custom keywords)


License

Copyright 2021 Finn Lancaster, Simon Huber, TonyM, collaborators, and the TiddlyWiki Community

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

End license text.

speech-to-text-in-tw5's People

Contributors

burningtreec avatar flancast90 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

speech-to-text-in-tw5's Issues

We should overthink how we recognize commands

There's a problem:

  • A transcript can finish with Ok Wiki and the next transcript can start with the actual command
  • We should overthink how we handle the command-recognition
  • We should concatenate all transcripts together and then check for the Ok Wiki and the following command
  • Having found such a command-chain, we remove it from the full transcript
  • Then we process the command

User - defined actions and keywords

In the current master we can create tiddlers with tag $:/tags/VoiceCommand and the field voice-command which contains the command that should trigger the action. The text field should contain the actions that are then triggered.

There's also the possibility to define your own custom keywords additionally to Ok and Wiki using the tiddler $:/config/speech-to-text/keywords and its fields ok-keywords and wiki-keywords

The field ok-keywords could then contain "Pasta pasta" and the field wiki-keywords could contain "Maccheroni macaroni" and then Pasta macaroni switch language to german would work

Notification: Documentation shall be written!

Hi all,

This is just a simple post to explain the documentation I will add to the README.md. I plan to include

  • Project Description
  • Install
    a. Drag-and-Drop
    b. Dev setup for Node.js
  • Use Cases
    a. basic "Get Started" for new tiddler with transcript
    b. transcript in existing tiddler (when applicable)
    c. verbal commands (custom, too, when applicable)
  • License (MIT)

anything else anyone can think of?

TW-Sounds Coming Along!

@BurningTreeC ,

Just wanted to let you know that I have been working on TW-Sounds, and analysis of sounds and similar-sounding words to integrate with this plugin! You can see what I have done so far at https://github.com/flancast90/TW-Sounds. It is not quite ready, but I am working on the part for finding rhymes and near-rhymes without API. As you can imagine, the natural language processing and maths involved are a bit much!

Text-editor toolbar button brainstorming

I open this issue as a reminder that we want to create a text-editor toolbar button that allows inserting the recorded text into the current tiddlers' text field

For that we need some brainstorming and we need to collect information about the tiddlywiki internals so that we know how we can realize this

Let's Start v1.0.7 (or 8) with TW-Sounds!

Hi @BurningTreeC,

Since neither of us have been real active lately in this repo, I've decided to start work on v1.0.7/8, utilising TW-Sounds. I'll add the functions and calls, and if you want, you can look over the code and make it more "tw-like".

Toolbar and Commands

As requested, I have opened a new discussion for the implementation of the feedback received. I intend to elaborate more on the command keywords, as well.

Testing for v1.0.5

We should now test test test so that we can release v1.0.5

  • Is language switching stable (by all 3 methods)?
  • Do user-defined voice commands work consistently?
  • Do user-defined keywords work consistently?

Made my first solo plugin!

@BurningTreeC:

I just wanted to thank you for all the help you've been so far in how to make a TW-plugin, and wanted to announce that I've made my first solo plugin: text-to-speech. The plugin is really quite simple, and I got the idea from TiddlyTweeter's question about this functionality. I felt that it wouldn't fit this plugin well (a bit off-topic for this plugin), so I created a minimal implementation of something here.

Get Current Lang of TW

Just need a one-liner solution to get the language of TW (not plugin), TW itself. I am going to implement an option to change the plugin language when TW language changes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.