#english #chinese #japanese #dictation #dictate

app ouou_dictation

A command-line app for self-guided dictation practice in Chinese, Japanese, or English

2 releases (1 stable)

1.0.0 Nov 14, 2024
0.1.0 Feb 9, 2023

#309 in Command line utilities

Download history 4/week @ 2024-09-20 68/week @ 2024-11-08 49/week @ 2024-11-15

117 downloads per month

MIT/Apache

24KB
391 lines

ouou-dictation

A command-line app for self-guided dictation practice in Chinese, Japanese, or English.

It's the first product of my Rust learning. Mostly for my own use, but if you find any issues or have good ideas, just let me know.

Features

  • Two Modes:

    • Dictate Mode for Self-dictation. Check the answer in real time
    • Read Mode just read over the word list
    • plus a mode for building word list
  • Select voices

  • Switch whether to shuffle the word list

  • Set speaking rate

  • clap for parsing arguments

  • Lingua for automatical languages detection.

  • TTS-RS for speaking out the words in various backends.

  • indicatif & console for colorful information display in terminals.

  • Anyhow for errors handling.

  • Serde for json format word list serialization and deserialization.

Usage

Build it or download the release.

Run it in the console. take --help as argument for help, like:

PS C:\Users\OuOu\Desktop> .\ouou_dictation.exe --help
A command-line app for self-guided dictation practice in Chinese, Japanese, or English.

Usage: ouou_dictation.exe [OPTIONS] --path <PATH> [MODE]

Arguments:
  [MODE]  [default: dictation] [possible values: dictation, speak, build-list]

Options:
  -p, --path <PATH>
  -s, --speed <SPEED>  Use like 0.5 or 1.2 [default: 0.9]
  -d, --dont-shuffle   Do not shuffle the word list
  -h, --help           Print help
  -V, --version        Print version

If you want to use it for a long time, it is more convenient to add the exe to the environment path.

Create an alias

ouou-dictation don't have a shorter name like rg(ripgrep) currently, but you can create an alias yourself:

  • In Windows Powershell: Unlike some Unix shells, you cannot assign an alias to a command with parameters in Powershell. Instead, you must create a function to propagate arguments and stdin input. To keep the function alive permanently, declare it in $profile(if not exists, run New-Item -Type file -Force $profile to create it):
function ood {
   $count = @($input).Count
   $input.Reset()

   if ($count) {
       $input | ouou_dictation.exe $args
   }
   else {
       ouou_dictation.exe $args
   }
}
  • In Linux Shell:
alias ood='ouou_dictation'

Dependencies

~19–53MB
~872K SLoC