Skip to content

Commit 96ce283

Browse files
authored
Update README.md
1 parent e7d7e08 commit 96ce283

File tree

1 file changed

+30
-27
lines changed

1 file changed

+30
-27
lines changed

README.md

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,21 @@ Type "7z x filename" to extract the archive.
1414

1515

1616

17+
1718
# Morse Audio to Text Translator Using Ada: MATTA
1819

1920

20-
**ver 1.0.1 -- 29feb2020**
21-
* Added txt2wav
22-
* Improved coding
23-
* Initial version.
21+
**ver 1.0.2 -- 03aug2021**
2422

23+
* The commandline parameter estimated WPM may now be [optionally] omitted if the morse code message is long enough to get meaningful timing statistics.
2524

26-
## Note: Please ignore the "Source code" zip & tar.gz files. (They are auto-generated by GitHub). Click on the large 7z file under releases to download all source & binaries (Windows,Mac & Linux). Then, type "7z x filename" to extract the archive.
2725

26+
**ver 1.0.0 -- 29feb2020**
27+
28+
* Initial version.
29+
30+
31+
### GitHub Note: Please ignore the "Source code" zip & tar.gz files. (They are auto-generated by GitHub). Click on the large 7z file under releases to download all source & binaries (Windows,Mac & Linux). Then, type "7z x filename" to extract the archive.
2832

2933

3034
## Description
@@ -35,8 +39,6 @@ The input wav file must be monaural, with a 16-bit signed integer encoding, and
3539

3640
Now includes an inverse commandline app, txt2wav that creates a morse code WAV file from English text.
3741

38-
The proper command to extract the archive and maintain the directory structure is "7z x filename".
39-
4042
--------------------------------------------------------
4143
## Usage Examples
4244

@@ -46,56 +48,51 @@ The user command requires the WAV file name, and integer-WPM estimate as input:
4648

4749
English text is then printed out to the screen.
4850

49-
Note that the precompiled executables use suffixes that indicates the system:
51+
### Addendum1: WPM-estimate-parameter may now be optionally omitted IF the message is long enough to analyze.
5052

51-
.) _osx (MacOSX)
53+
EG. wav2txt 40wpmAZ.wav
5254

53-
.) _gnu (linux)
55+
### Addendum2: it is very cheap to try various WPM-estimates. Most messages are between 10 and 40 wpm.
56+
57+
### Addendum3: the Windows executable will work on your linux box if wine is installed.
5458

59+
Note that the precompiled executables use suffixes that indicates the system:
60+
.) _osx (MacOSX)
61+
.) _gnu (linux)
5562
.) .exe (MsWin)
5663

5764
For example, let's say you use a Mac and have a friend with a Windows computer.
5865

59-
* txt2wav_osx creates a WAV file from given text on OSX;
60-
61-
* wav2txt.exe deciphers the WAV file on Windows.
66+
* txt2wav_osx creates a WAV file from text on OSX.
67+
68+
* wav2txt.exe deciphers the WAV file on Windows.
6269

6370
--------------------------------------------------------------------------
6471
The new inverse app takes a commandline string, which must be quoted to include spaces thusly:
6572

6673
txt2wav "the quick brown fox"
6774

68-
and creates an output WAV file, named "new20wpm.wav", with the morse code equivalent. This output file can be renamed and manipulated using sox.
75+
and creates an output WAV file, named "new20wpm.wav", with the morse code equivalent. This output file can be renamed and manipulated using "sox", as follows.
6976

7077
To slow it down try:
71-
7278
sox new20wpm.wav new10wpm.wav speed 0.5
7379

74-
This also lowers the tone (from 500 to 250 Hz) so to restore the tone try:
75-
80+
This lowers the tone (from 500 to 250 Hz) so to restore the tone try:
7681
sox new10wpm.wav hi10wpm.wav pitch +250
7782

7883
Too loud? Try
79-
8084
sox -v 0.8 hi10wpm.wav quiet10wpm.wav
81-
82-
Note that txt2wav is a cheap & dirty tool to create minimal test input files for wav2txt. The WAV headers might be illegal since they are blatantly copied from an existing WAV file. Nevertheless, "sox" and "soxi" seem to accept them. And if you are going to manipulate them with sox, the output of sox is probably legal.
8385

8486
========================================================
8587
## How wav2txt Works:
8688

8789
A clean morse code sound file contains tonal beeps separated by periods of silence. After normalization, the sound wave peak amplitude is one, while the periods of silence have near zero peaks. The simple approach used here seeks to detect those changes in peak amplitude that signal dots, dashes, and spaces.
8890

8991
The (ideal) international morse code relative timings are defined as:
90-
9192
.) length of a dot = 1
92-
9393
.) length of a dash = 3
94-
9594
.) space after dot or dash = 1
96-
9795
.) space after a letter = 3
98-
9996
.) space after a word = 7
10097

10198
wav2txt is not perfect, but computer-generated sound files can be reliably decoded.
@@ -104,12 +101,17 @@ See also the inline code comments.
104101

105102
Final note: many good apps can easily be found to generate morse code sound files from text. One simple one is included (txt2wav) merely for the sake of completeness.
106103

104+
## Unresolved Question:
105+
106+
Can the requirement of an estimated WPM be dropped, somehow?
107+
108+
107109
--------------------------
108-
## Legal Mumbo Jumbo:
110+
## License:
109111

110112
Covered by the GNU GPL v3 as indicated in the sources:
111113

112-
Copyright (C) 2020 <[email protected]>
114+
Copyright (C) 2021 <[email protected]>
113115

114116
This program is free software: you can redistribute it and/or modify
115117
it under the terms of the GNU General Public License as published by
@@ -123,3 +125,4 @@ Covered by the GNU GPL v3 as indicated in the sources:
123125

124126
You may read the full text of the GNU General Public License
125127
at <http://www.gnu.org/licenses/>.
128+

0 commit comments

Comments
 (0)