ouou_dictation

Crates.ioouou_dictation
lib.rsouou_dictation
version1.0.0
sourcesrc
created_at2023-02-09 08:50:57.972604
updated_at2024-11-14 13:15:22.595592
descriptionA command-line app for self-guided dictation practice in Chinese, Japanese, or English.
homepage
repositoryhttps://github.com/OuOu2021/ouou-dictation
max_upload_size
id780599
size76,882
OuOu2021 (OuOu2021)

documentation

README

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'
Commit count: 32

cargo fmt