echogarden 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/README.md +59 -1
  2. package/data/lexicons/heteronyms.json +674 -0
  3. package/data/schemas/options.json +1057 -0
  4. package/data/tables/lcid-table.json +7427 -0
  5. package/dist/alignment/DTWMfccSequenceAlignment.d.ts +2 -0
  6. package/dist/alignment/DTWMfccSequenceAlignment.js +26 -0
  7. package/dist/alignment/DTWMfccSequenceAlignment.js.map +1 -0
  8. package/dist/alignment/DTWSequenceAlignment.d.ts +5 -0
  9. package/dist/alignment/DTWSequenceAlignment.js +99 -0
  10. package/dist/alignment/DTWSequenceAlignment.js.map +1 -0
  11. package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +5 -0
  12. package/dist/alignment/DTWSequenceAlignmentWindowed.js +161 -0
  13. package/dist/alignment/DTWSequenceAlignmentWindowed.js.map +1 -0
  14. package/dist/alignment/LevenshteinSequenceAlignment.d.ts +5 -0
  15. package/dist/alignment/LevenshteinSequenceAlignment.js +102 -0
  16. package/dist/alignment/LevenshteinSequenceAlignment.js.map +1 -0
  17. package/dist/alignment/SpeechAlignment.d.ts +27 -0
  18. package/dist/alignment/SpeechAlignment.js +266 -0
  19. package/dist/alignment/SpeechAlignment.js.map +1 -0
  20. package/dist/api/API.d.ts +8 -0
  21. package/dist/api/API.js +10 -0
  22. package/dist/api/API.js.map +1 -0
  23. package/dist/api/APIOptions.d.ts +12 -0
  24. package/dist/api/APIOptions.js +2 -0
  25. package/dist/api/APIOptions.js.map +1 -0
  26. package/dist/api/Alignment.d.ts +32 -0
  27. package/dist/api/Alignment.js +134 -0
  28. package/dist/api/Alignment.js.map +1 -0
  29. package/dist/api/Denoising.d.ts +14 -0
  30. package/dist/api/Denoising.js +66 -0
  31. package/dist/api/Denoising.js.map +1 -0
  32. package/dist/api/Globals.d.ts +1 -0
  33. package/dist/api/Globals.js +2 -0
  34. package/dist/api/Globals.js.map +1 -0
  35. package/dist/api/LanguageDetection.d.ts +49 -0
  36. package/dist/api/LanguageDetection.js +118 -0
  37. package/dist/api/LanguageDetection.js.map +1 -0
  38. package/dist/api/Recognition.d.ts +49 -0
  39. package/dist/api/Recognition.js +162 -0
  40. package/dist/api/Recognition.js.map +1 -0
  41. package/dist/api/Synthesis.d.ts +125 -0
  42. package/dist/api/Synthesis.js +892 -0
  43. package/dist/api/Synthesis.js.map +1 -0
  44. package/dist/api/Translation.d.ts +25 -0
  45. package/dist/api/Translation.js +69 -0
  46. package/dist/api/Translation.js.map +1 -0
  47. package/dist/api/Vad.d.ts +25 -0
  48. package/dist/api/Vad.js +88 -0
  49. package/dist/api/Vad.js.map +1 -0
  50. package/dist/audio/AudioBufferConversion.d.ts +15 -0
  51. package/dist/audio/AudioBufferConversion.js +228 -0
  52. package/dist/audio/AudioBufferConversion.js.map +1 -0
  53. package/dist/audio/AudioPlayer.d.ts +9 -0
  54. package/dist/audio/AudioPlayer.js +232 -0
  55. package/dist/audio/AudioPlayer.js.map +1 -0
  56. package/dist/audio/AudioRecorder.d.ts +3 -0
  57. package/dist/audio/AudioRecorder.js +68 -0
  58. package/dist/audio/AudioRecorder.js.map +1 -0
  59. package/dist/audio/AudioUtilities.d.ts +48 -0
  60. package/dist/audio/AudioUtilities.js +209 -0
  61. package/dist/audio/AudioUtilities.js.map +1 -0
  62. package/dist/audio/SoxPath.d.ts +1 -0
  63. package/dist/audio/SoxPath.js +19 -0
  64. package/dist/audio/SoxPath.js.map +1 -0
  65. package/dist/cli/CLI.d.ts +8 -0
  66. package/dist/cli/CLI.js +860 -0
  67. package/dist/cli/CLI.js.map +1 -0
  68. package/dist/cli/CLIConfigFile.d.ts +3 -0
  69. package/dist/cli/CLIConfigFile.js +62 -0
  70. package/dist/cli/CLIConfigFile.js.map +1 -0
  71. package/dist/cli/CLILauncher.d.ts +2 -0
  72. package/dist/cli/CLILauncher.js +22 -0
  73. package/dist/cli/CLILauncher.js.map +1 -0
  74. package/dist/cli/CLIOptionsSchema.d.ts +5 -0
  75. package/dist/cli/CLIOptionsSchema.js +36 -0
  76. package/dist/cli/CLIOptionsSchema.js.map +1 -0
  77. package/dist/cli/CLIParser.d.ts +6 -0
  78. package/dist/cli/CLIParser.js +34 -0
  79. package/dist/cli/CLIParser.js.map +1 -0
  80. package/dist/cli/CLIStarter.d.ts +1 -0
  81. package/dist/cli/CLIStarter.js +3 -0
  82. package/dist/cli/CLIStarter.js.map +1 -0
  83. package/dist/codecs/FFMpegTranscoder.d.ts +20 -0
  84. package/dist/codecs/FFMpegTranscoder.js +169 -0
  85. package/dist/codecs/FFMpegTranscoder.js.map +1 -0
  86. package/dist/codecs/TIMITCodec.d.ts +9 -0
  87. package/dist/codecs/TIMITCodec.js +14 -0
  88. package/dist/codecs/TIMITCodec.js.map +1 -0
  89. package/dist/codecs/WaveCodec.d.ts +19 -0
  90. package/dist/codecs/WaveCodec.js +208 -0
  91. package/dist/codecs/WaveCodec.js.map +1 -0
  92. package/dist/denoising/RNNoise.d.ts +6 -0
  93. package/dist/denoising/RNNoise.js +68 -0
  94. package/dist/denoising/RNNoise.js.map +1 -0
  95. package/dist/dsp/BiquadFilter.d.ts +26 -0
  96. package/dist/dsp/BiquadFilter.js +399 -0
  97. package/dist/dsp/BiquadFilter.js.map +1 -0
  98. package/dist/dsp/FFT.d.ts +9 -0
  99. package/dist/dsp/FFT.js +135 -0
  100. package/dist/dsp/FFT.js.map +1 -0
  101. package/dist/dsp/MFCC.d.ts +25 -0
  102. package/dist/dsp/MFCC.js +162 -0
  103. package/dist/dsp/MFCC.js.map +1 -0
  104. package/dist/dsp/MelSpectogram.d.ts +19 -0
  105. package/dist/dsp/MelSpectogram.js +102 -0
  106. package/dist/dsp/MelSpectogram.js.map +1 -0
  107. package/dist/dsp/Rubberband.d.ts +52 -0
  108. package/dist/dsp/Rubberband.js +186 -0
  109. package/dist/dsp/Rubberband.js.map +1 -0
  110. package/dist/dsp/Sonic.d.ts +2 -0
  111. package/dist/dsp/Sonic.js +39 -0
  112. package/dist/dsp/Sonic.js.map +1 -0
  113. package/dist/dsp/SpeexResampler.d.ts +3 -0
  114. package/dist/dsp/SpeexResampler.js +53 -0
  115. package/dist/dsp/SpeexResampler.js.map +1 -0
  116. package/dist/math/VectorMath.d.ts +70 -0
  117. package/dist/math/VectorMath.js +564 -0
  118. package/dist/math/VectorMath.js.map +1 -0
  119. package/dist/nlp/ChineseSegmentation.d.ts +1 -0
  120. package/dist/nlp/ChineseSegmentation.js +53 -0
  121. package/dist/nlp/ChineseSegmentation.js.map +1 -0
  122. package/dist/nlp/CompromiseNLP.d.ts +15 -0
  123. package/dist/nlp/CompromiseNLP.js +66 -0
  124. package/dist/nlp/CompromiseNLP.js.map +1 -0
  125. package/dist/nlp/EspeakPhonemizer.d.ts +4 -0
  126. package/dist/nlp/EspeakPhonemizer.js +133 -0
  127. package/dist/nlp/EspeakPhonemizer.js.map +1 -0
  128. package/dist/nlp/IPA.d.ts +19 -0
  129. package/dist/nlp/IPA.js +113 -0
  130. package/dist/nlp/IPA.js.map +1 -0
  131. package/dist/nlp/JapaneseSegmentation.d.ts +1 -0
  132. package/dist/nlp/JapaneseSegmentation.js +40 -0
  133. package/dist/nlp/JapaneseSegmentation.js.map +1 -0
  134. package/dist/nlp/Lexicon.d.ts +17 -0
  135. package/dist/nlp/Lexicon.js +6 -0
  136. package/dist/nlp/Lexicon.js.map +1 -0
  137. package/dist/nlp/PhoneConversion.d.ts +6 -0
  138. package/dist/nlp/PhoneConversion.js +467 -0
  139. package/dist/nlp/PhoneConversion.js.map +1 -0
  140. package/dist/nlp/Segmentation.d.ts +41 -0
  141. package/dist/nlp/Segmentation.js +158 -0
  142. package/dist/nlp/Segmentation.js.map +1 -0
  143. package/dist/nlp/TextNormalizer.d.ts +4 -0
  144. package/dist/nlp/TextNormalizer.js +69 -0
  145. package/dist/nlp/TextNormalizer.js.map +1 -0
  146. package/dist/recognition/AmazonTranscribeSTT.d.ts +6 -0
  147. package/dist/recognition/AmazonTranscribeSTT.js +79 -0
  148. package/dist/recognition/AmazonTranscribeSTT.js.map +1 -0
  149. package/dist/recognition/AzureCognitiveServicesSTT.d.ts +7 -0
  150. package/dist/recognition/AzureCognitiveServicesSTT.js +51 -0
  151. package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -0
  152. package/dist/recognition/GoogleCloudSTT.d.ts +7 -0
  153. package/dist/recognition/GoogleCloudSTT.js +66 -0
  154. package/dist/recognition/GoogleCloudSTT.js.map +1 -0
  155. package/dist/recognition/SileroSTT.d.ts +9 -0
  156. package/dist/recognition/SileroSTT.js +125 -0
  157. package/dist/recognition/SileroSTT.js.map +1 -0
  158. package/dist/recognition/VoskSTT.d.ts +10 -0
  159. package/dist/recognition/VoskSTT.js +78 -0
  160. package/dist/recognition/VoskSTT.js.map +1 -0
  161. package/dist/recognition/WhisperSTT.d.ts +69 -0
  162. package/dist/recognition/WhisperSTT.js +977 -0
  163. package/dist/recognition/WhisperSTT.js.map +1 -0
  164. package/dist/server/Server.d.ts +1 -0
  165. package/dist/server/Server.js +18 -0
  166. package/dist/server/Server.js.map +1 -0
  167. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +9 -0
  168. package/dist/speech-language-detection/SileroLanguageDetection.js +47 -0
  169. package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -0
  170. package/dist/subtitles/Subtitles.d.ts +25 -0
  171. package/dist/subtitles/Subtitles.js +286 -0
  172. package/dist/subtitles/Subtitles.js.map +1 -0
  173. package/dist/synthesis/AwsPollyTTS.d.ts +7 -0
  174. package/dist/synthesis/AwsPollyTTS.js +51 -0
  175. package/dist/synthesis/AwsPollyTTS.js.map +1 -0
  176. package/dist/synthesis/AzureCognitiveServicesTTS.d.ts +9 -0
  177. package/dist/synthesis/AzureCognitiveServicesTTS.js +103 -0
  178. package/dist/synthesis/AzureCognitiveServicesTTS.js.map +1 -0
  179. package/dist/synthesis/CoquiServerTTS.d.ts +6 -0
  180. package/dist/synthesis/CoquiServerTTS.js +22 -0
  181. package/dist/synthesis/CoquiServerTTS.js.map +1 -0
  182. package/dist/synthesis/ElevenLabsTTS.d.ts +8 -0
  183. package/dist/synthesis/ElevenLabsTTS.js +48 -0
  184. package/dist/synthesis/ElevenLabsTTS.js.map +1 -0
  185. package/dist/synthesis/EspeakTTS.d.ts +46 -0
  186. package/dist/synthesis/EspeakTTS.js +353 -0
  187. package/dist/synthesis/EspeakTTS.js.map +1 -0
  188. package/dist/synthesis/FliteTTS.d.ts +17 -0
  189. package/dist/synthesis/FliteTTS.js +326 -0
  190. package/dist/synthesis/FliteTTS.js.map +1 -0
  191. package/dist/synthesis/GoogleCloudTTS.d.ts +16 -0
  192. package/dist/synthesis/GoogleCloudTTS.js +72 -0
  193. package/dist/synthesis/GoogleCloudTTS.js.map +1 -0
  194. package/dist/synthesis/GoogleTranslateTTS.d.ts +13 -0
  195. package/dist/synthesis/GoogleTranslateTTS.js +177 -0
  196. package/dist/synthesis/GoogleTranslateTTS.js.map +1 -0
  197. package/dist/synthesis/MicrosoftEdgeTTS.d.ts +10 -0
  198. package/dist/synthesis/MicrosoftEdgeTTS.js +216 -0
  199. package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -0
  200. package/dist/synthesis/SamTTS.d.ts +4 -0
  201. package/dist/synthesis/SamTTS.js +21 -0
  202. package/dist/synthesis/SamTTS.js.map +1 -0
  203. package/dist/synthesis/SapiTTS.d.ts +9 -0
  204. package/dist/synthesis/SapiTTS.js +211 -0
  205. package/dist/synthesis/SapiTTS.js.map +1 -0
  206. package/dist/synthesis/StreamlabsPollyTTS.d.ts +12 -0
  207. package/dist/synthesis/StreamlabsPollyTTS.js +88 -0
  208. package/dist/synthesis/StreamlabsPollyTTS.js.map +1 -0
  209. package/dist/synthesis/SvoxPicoTTS.d.ts +11 -0
  210. package/dist/synthesis/SvoxPicoTTS.js +236 -0
  211. package/dist/synthesis/SvoxPicoTTS.js.map +1 -0
  212. package/dist/synthesis/VitsTTS.d.ts +27 -0
  213. package/dist/synthesis/VitsTTS.js +359 -0
  214. package/dist/synthesis/VitsTTS.js.map +1 -0
  215. package/dist/tests/Test.d.ts +1 -0
  216. package/dist/tests/Test.js +10 -0
  217. package/dist/tests/Test.js.map +1 -0
  218. package/dist/text-language-detection/FastTextLanguageDetection.d.ts +2 -0
  219. package/dist/text-language-detection/FastTextLanguageDetection.js +38 -0
  220. package/dist/text-language-detection/FastTextLanguageDetection.js.map +1 -0
  221. package/dist/text-language-detection/TinyLDLanguageDetection.d.ts +2 -0
  222. package/dist/text-language-detection/TinyLDLanguageDetection.js +12 -0
  223. package/dist/text-language-detection/TinyLDLanguageDetection.js.map +1 -0
  224. package/dist/utilities/BinaryArrayConversion.d.ts +15 -0
  225. package/dist/utilities/BinaryArrayConversion.js +115 -0
  226. package/dist/utilities/BinaryArrayConversion.js.map +1 -0
  227. package/dist/utilities/Compression.d.ts +4 -0
  228. package/dist/utilities/Compression.js +67 -0
  229. package/dist/utilities/Compression.js.map +1 -0
  230. package/dist/utilities/FileDownloader.d.ts +3 -0
  231. package/dist/utilities/FileDownloader.js +147 -0
  232. package/dist/utilities/FileDownloader.js.map +1 -0
  233. package/dist/utilities/FileSystem.d.ts +30 -0
  234. package/dist/utilities/FileSystem.js +141 -0
  235. package/dist/utilities/FileSystem.js.map +1 -0
  236. package/dist/utilities/Hashing.d.ts +10 -0
  237. package/dist/utilities/Hashing.js +169 -0
  238. package/dist/utilities/Hashing.js.map +1 -0
  239. package/dist/utilities/Locale.d.ts +9 -0
  240. package/dist/utilities/Locale.js +65 -0
  241. package/dist/utilities/Locale.js.map +1 -0
  242. package/dist/utilities/Logger.d.ts +11 -0
  243. package/dist/utilities/Logger.js +49 -0
  244. package/dist/utilities/Logger.js.map +1 -0
  245. package/dist/utilities/NdArrayUtilities.d.ts +3 -0
  246. package/dist/utilities/NdArrayUtilities.js +22 -0
  247. package/dist/utilities/NdArrayUtilities.js.map +1 -0
  248. package/dist/utilities/ObjectUtilities.d.ts +4 -0
  249. package/dist/utilities/ObjectUtilities.js +132 -0
  250. package/dist/utilities/ObjectUtilities.js.map +1 -0
  251. package/dist/utilities/OpenPromise.d.ts +6 -0
  252. package/dist/utilities/OpenPromise.js +12 -0
  253. package/dist/utilities/OpenPromise.js.map +1 -0
  254. package/dist/utilities/PackageManager.d.ts +4 -0
  255. package/dist/utilities/PackageManager.js +46 -0
  256. package/dist/utilities/PackageManager.js.map +1 -0
  257. package/dist/utilities/RandomGenerator.d.ts +35 -0
  258. package/dist/utilities/RandomGenerator.js +149 -0
  259. package/dist/utilities/RandomGenerator.js.map +1 -0
  260. package/dist/utilities/TarballMaker.d.ts +4 -0
  261. package/dist/utilities/TarballMaker.js +50 -0
  262. package/dist/utilities/TarballMaker.js.map +1 -0
  263. package/dist/utilities/Timeline.d.ts +20 -0
  264. package/dist/utilities/Timeline.js +110 -0
  265. package/dist/utilities/Timeline.js.map +1 -0
  266. package/dist/utilities/Timer.d.ts +13 -0
  267. package/dist/utilities/Timer.js +70 -0
  268. package/dist/utilities/Timer.js.map +1 -0
  269. package/dist/utilities/Utilities.d.ts +68 -0
  270. package/dist/utilities/Utilities.js +305 -0
  271. package/dist/utilities/Utilities.js.map +1 -0
  272. package/dist/utilities/WasmMemoryManager.d.ts +142 -0
  273. package/dist/utilities/WasmMemoryManager.js +407 -0
  274. package/dist/utilities/WasmMemoryManager.js.map +1 -0
  275. package/dist/utilities/WebReader.d.ts +1 -0
  276. package/dist/utilities/WebReader.js +47 -0
  277. package/dist/utilities/WebReader.js.map +1 -0
  278. package/dist/utilities/WikipediaReader.d.ts +1 -0
  279. package/dist/utilities/WikipediaReader.js +31 -0
  280. package/dist/utilities/WikipediaReader.js.map +1 -0
  281. package/dist/voice-activity-detection/SileroVAD.d.ts +13 -0
  282. package/dist/voice-activity-detection/SileroVAD.js +58 -0
  283. package/dist/voice-activity-detection/SileroVAD.js.map +1 -0
  284. package/dist/voice-activity-detection/WebRtcVAD.d.ts +3 -0
  285. package/dist/voice-activity-detection/WebRtcVAD.js +53 -0
  286. package/dist/voice-activity-detection/WebRtcVAD.js.map +1 -0
  287. package/docs/CLI.md +234 -0
  288. package/docs/Development.md +3 -0
  289. package/docs/Engines.md +80 -0
  290. package/docs/Licenses.md +37 -0
  291. package/docs/Options.md +192 -0
  292. package/docs/Roadmap.md +16 -0
  293. package/docs/Technical.md +72 -0
  294. package/package.json +119 -19
  295. package/cli.js +0 -3
package/README.md CHANGED
@@ -2,4 +2,62 @@
2
2
 
3
3
  An integrated speech toolbox designed with end-users in mind.
4
4
 
5
- _This is a placeholder for the Echogarden library and command-line tool. It will be published soon._
5
+ * Written in TypeScript, for the Node.js platform
6
+ * Easy to install, run and update
7
+ * Runs on Windows (x64), macOS (x64, ARM64) and Linux (x64)
8
+ * Does not require Python, Docker, or any other system-level dependencies
9
+ * No essential platform-specific binary executables. Engines are ported via WebAssembly or the [ONNX runtime](https://onnxruntime.ai/)
10
+
11
+ ## Feature highlights
12
+
13
+ * Fast, high-quality offline text-to-speech voices based on the [VITS](https://github.com/jaywalnut310/vits) neural architecture
14
+ * Accurate offline speech recognition using [OpenAI Whisper](https://openai.com/research/whisper) models
15
+ * Supports synthesis and recognition via major cloud providers, including Google, Microsoft and Amazon
16
+ * Word-level timestamps for all synthesis and recognition outputs
17
+ * Speech-to-transcript alignment using dynamic time warping (DTW), and dynamic time warping with recognition assist (DTW-RA) methods
18
+ * Advanced subtitle generation, accounting for sentence and phrase boundaries
19
+ * Can transcribe speech in any one of 98 languages, translated directly to English, and produce near word-level synchronized subtitles
20
+ * Uses NLP for improving TTS pronunciation accuracy on a few engines and languages: adds text normalization (e.g. idiomatic date and currency pronunciation), heteronym disambiguation (based on POS tagging) and user-customizable phonetic lexicons
21
+ * Internal package system to auto-download and install voices, models and other resources, as needed
22
+ * Other features include: language detection (both for audio and text), voice activity detection and speech denoising
23
+
24
+ ## Planned, but not yet
25
+
26
+ * Real-time, streaming speech recognition
27
+ * WebSocket server API
28
+ * Web-based GUI frontend
29
+ * Browser port for a subset of the API (in particular for the offline TTS models and their dependencies)
30
+
31
+ ## Installation
32
+
33
+ Ensure you have [Node.js](https://nodejs.org/) `v16.0.0` or later installed.
34
+
35
+ then:
36
+ ```bash
37
+ npm install echogarden -g
38
+ ```
39
+
40
+ Additional tools:
41
+ * [`sox`](https://sourceforge.net/projects/sox/): used for playback and recording only. Auto-installed via an expansion package on Windows and Intel macOS. On Linux and ARM64 macOS, it is recommended to install it via platform package managers like `apt` and `brew`.
42
+ * [`ffmpeg`](https://ffmpeg.org/download.html): used for codec conversions. Auto-installed via an expansion package on Windows, Intel macOS, and Linux. On ARM64 macOS, it is recommended to install it via platform package manager like `brew`, otherwise, much slower `ffmpeg-wasm` would be used.
43
+
44
+ (hopefully in the future all platforms would be covered using expansion packages)
45
+
46
+ ## Next steps
47
+
48
+ * [Using the command line interface](docs/CLI.md)
49
+ * [Options reference](docs/Options.md)
50
+ * [Full list of supported engines](docs/Engines.md)
51
+ * [Technical overview and Q&A](docs/Technical.md)
52
+ * [Roadmap](docs/Roadmap.md)
53
+ * [How to help](docs/Development.md)
54
+
55
+ ## Credits
56
+
57
+ This project consolidates and builds upon the work of [many different individuals and companies](docs/Licenses.md).
58
+
59
+ Designed and developed by Rotem Dan.
60
+
61
+ ## License
62
+
63
+ GNU General Public License v3
@@ -0,0 +1,674 @@
1
+ {
2
+ "present": [
3
+ {
4
+ "pos": [
5
+ "VB"
6
+ ],
7
+ "pronunciation": {
8
+ "espeak": {
9
+ "en-us": "p ɹ ɪ z ˈɛ n t"
10
+ }
11
+ },
12
+ "example": "I will present the issue."
13
+ },
14
+ {
15
+ "pronunciation": {
16
+ "espeak": {
17
+ "en-us": "p ɹ ˈɛ z ə n t"
18
+ }
19
+ },
20
+ "example": "I got you a present."
21
+ }
22
+ ],
23
+ "read": [
24
+ {
25
+ "pos": [
26
+ "VB"
27
+ ],
28
+ "pronunciation": {
29
+ "espeak": {
30
+ "en-us": "ɹ ˈiː d"
31
+ }
32
+ },
33
+ "example": "I will read the story."
34
+ },
35
+ {
36
+ "pronunciation": {
37
+ "espeak": {
38
+ "en-us": "ɹ ˈɛ d"
39
+ }
40
+ },
41
+ "example": "I have read the story."
42
+ }
43
+ ],
44
+ "use": [
45
+ {
46
+ "pos": [
47
+ "VB"
48
+ ],
49
+ "pronunciation": {
50
+ "espeak": {
51
+ "en-us": "j ˈuː z"
52
+ }
53
+ },
54
+ "example": "I will use the fork."
55
+ },
56
+ {
57
+ "pronunciation": {
58
+ "espeak": {
59
+ "en-us": "j ˈuː s"
60
+ }
61
+ },
62
+ "example": "There's no use."
63
+ }
64
+ ],
65
+ "live": [
66
+ {
67
+ "pos": [
68
+ "VB"
69
+ ],
70
+ "pronunciation": {
71
+ "espeak": {
72
+ "en-us": "l ˈɪ v"
73
+ }
74
+ },
75
+ "example": "I will live well."
76
+ },
77
+ {
78
+ "pronunciation": {
79
+ "espeak": {
80
+ "en-us": "l ˈaɪ v"
81
+ }
82
+ },
83
+ "example": "It is a live performance."
84
+ }
85
+ ],
86
+ "lives": [
87
+ {
88
+ "pos": [
89
+ "VBZ"
90
+ ],
91
+ "pronunciation": {
92
+ "espeak": {
93
+ "en-us": "l ˈɪ v z"
94
+ }
95
+ },
96
+ "example": "She lives vigorously."
97
+ },
98
+ {
99
+ "pronunciation": {
100
+ "espeak": {
101
+ "en-us": "l ˈaɪ v z"
102
+ }
103
+ },
104
+ "example": "Their lives are interesting."
105
+ }
106
+ ],
107
+ "close": [
108
+ {
109
+ "pos": [
110
+ "VB"
111
+ ],
112
+ "pronunciation": {
113
+ "espeak": {
114
+ "en-us": "k l ˈoʊ z"
115
+ }
116
+ },
117
+ "example": "I will close the door."
118
+ },
119
+ {
120
+ "pronunciation": {
121
+ "espeak": {
122
+ "en-us": "k l ˈoʊ s"
123
+ }
124
+ },
125
+ "example": "It is very close."
126
+ }
127
+ ],
128
+ "subject": [
129
+ {
130
+ "pos": [
131
+ "VB"
132
+ ],
133
+ "pronunciation": {
134
+ "espeak": {
135
+ "en-us": "s ʌ b dʒ ˈɛ k t"
136
+ }
137
+ },
138
+ "example": "You must subject to the rules."
139
+ },
140
+ {
141
+ "pronunciation": {
142
+ "espeak": {
143
+ "en-us": "s ˈʌ b dʒ ɛ k t"
144
+ }
145
+ },
146
+ "example": "I understand the subject."
147
+ }
148
+ ],
149
+ "subjects": [
150
+ {
151
+ "pos": [
152
+ "VBZ"
153
+ ],
154
+ "pronunciation": {
155
+ "espeak": {
156
+ "en-us": "s ʌ b dʒ ˈɛ k t s"
157
+ }
158
+ },
159
+ "example": "He subjects them to his silly ideas."
160
+ },
161
+ {
162
+ "pronunciation": {
163
+ "espeak": {
164
+ "en-us": "s ˈʌ b dʒ ɛ k t s"
165
+ }
166
+ },
167
+ "example": "There are many subjects."
168
+ }
169
+ ],
170
+ "object": [
171
+ {
172
+ "pos": [
173
+ "VB"
174
+ ],
175
+ "pronunciation": {
176
+ "espeak": {
177
+ "en-us": "ɑː b dʒ ˈɛ k t"
178
+ }
179
+ },
180
+ "example": "I will object to that ruling."
181
+ },
182
+ {
183
+ "pronunciation": {
184
+ "espeak": {
185
+ "en-us": "ˈɑː b dʒ ɛ k t"
186
+ }
187
+ },
188
+ "example": "Here is an object."
189
+ }
190
+ ],
191
+ "objects": [
192
+ {
193
+ "pos": [
194
+ "VBZ"
195
+ ],
196
+ "pronunciation": {
197
+ "espeak": {
198
+ "en-us": "ɑː b dʒ ˈɛ k t s"
199
+ }
200
+ },
201
+ "example": "She objects to the idea."
202
+ },
203
+ {
204
+ "pronunciation": {
205
+ "espeak": {
206
+ "en-us": "ˈɑː b dʒ ɛ k t s"
207
+ }
208
+ },
209
+ "example": "There are lots of objects here."
210
+ }
211
+ ],
212
+ "wind": [
213
+ {
214
+ "pos": [
215
+ "VB"
216
+ ],
217
+ "pronunciation": {
218
+ "espeak": {
219
+ "en-us": "w ˈaɪ n d"
220
+ }
221
+ },
222
+ "example": "I know how to wind the engine."
223
+ },
224
+ {
225
+ "pronunciation": {
226
+ "espeak": {
227
+ "en-us": "w ˈɪ n d"
228
+ }
229
+ },
230
+ "example": "The wind is very strong."
231
+ }
232
+ ],
233
+ "tear": [
234
+ {
235
+ "pos": [
236
+ "VB"
237
+ ],
238
+ "pronunciation": {
239
+ "espeak": {
240
+ "en-us": "t ˈɛ ɹ"
241
+ }
242
+ },
243
+ "example": "He would tear it."
244
+ },
245
+ {
246
+ "pronunciation": {
247
+ "espeak": {
248
+ "en-us": "t ˈɪ ɹ"
249
+ }
250
+ },
251
+ "example": "She has a tear in her eye."
252
+ }
253
+ ],
254
+ "tears": [
255
+ {
256
+ "pos": [
257
+ "VBZ"
258
+ ],
259
+ "pronunciation": {
260
+ "espeak": {
261
+ "en-us": "t ˈɛɹ z"
262
+ }
263
+ },
264
+ "example": "He always tears it apart."
265
+ },
266
+ {
267
+ "pronunciation": {
268
+ "espeak": {
269
+ "en-us": "t ˈɪɹ z"
270
+ }
271
+ },
272
+ "example": "She has tears in her eyes."
273
+ }
274
+ ],
275
+ "minute": [
276
+ {
277
+ "pos": [
278
+ "JJ"
279
+ ],
280
+ "pronunciation": {
281
+ "espeak": {
282
+ "en-us": "m aɪ n j ˈu t"
283
+ }
284
+ },
285
+ "example": "There's a minute difference between the two."
286
+ },
287
+ {
288
+ "pronunciation": {
289
+ "espeak": {
290
+ "en-us": "m ˈɪ n ɪ t"
291
+ }
292
+ },
293
+ "example": "Wait a minute."
294
+ }
295
+ ],
296
+ "inside": [
297
+ {
298
+ "pos": [
299
+ "JJ"
300
+ ],
301
+ "pronunciation": {
302
+ "espeak": {
303
+ "en-us": "ˈɪ n s aɪ d"
304
+ }
305
+ },
306
+ "example": "You can see it on the inside of the box."
307
+ },
308
+ {
309
+ "pronunciation": {
310
+ "espeak": {
311
+ "en-us": "ɪ n s ˈaɪ d"
312
+ }
313
+ },
314
+ "example": "Please go inside."
315
+ }
316
+ ],
317
+ "outside": [
318
+ {
319
+ "pos": [
320
+ "JJ"
321
+ ],
322
+ "pronunciation": {
323
+ "espeak": {
324
+ "en-us": "aʊ t s ˈaɪ d"
325
+ }
326
+ },
327
+ "example": "This is the outside area."
328
+ },
329
+ {
330
+ "pronunciation": {
331
+ "espeak": {
332
+ "en-us": "aʊ t s ˈaɪ d"
333
+ }
334
+ },
335
+ "example": "Let's go outside."
336
+ }
337
+ ],
338
+ "perfect": [
339
+ {
340
+ "pos": [
341
+ "VB"
342
+ ],
343
+ "pronunciation": {
344
+ "espeak": {
345
+ "en-us": "p ɚ f ˈɛ k t"
346
+ }
347
+ },
348
+ "example": "I will perfect my skills."
349
+ },
350
+ {
351
+ "pronunciation": {
352
+ "espeak": {
353
+ "en-us": "p ˈɜː f ɛ k t"
354
+ }
355
+ },
356
+ "example": "This looks perfect."
357
+ }
358
+ ],
359
+ "conduct": [
360
+ {
361
+ "pos": [
362
+ "VB"
363
+ ],
364
+ "pronunciation": {
365
+ "espeak": {
366
+ "en-us": "k ə n d ˈʌ k t"
367
+ }
368
+ },
369
+ "example": "I will conduct an experiment."
370
+ },
371
+ {
372
+ "pronunciation": {
373
+ "espeak": {
374
+ "en-us": "k ˈɑː n d ʌ k t"
375
+ }
376
+ },
377
+ "example": "My conduct wasn't very good."
378
+ }
379
+ ],
380
+ "desert": [
381
+ {
382
+ "pos": [
383
+ "VB"
384
+ ],
385
+ "pronunciation": {
386
+ "espeak": {
387
+ "en-us": "d ᵻ z ˈɜː t"
388
+ }
389
+ },
390
+ "example": "Please don't desert me."
391
+ },
392
+ {
393
+ "pronunciation": {
394
+ "espeak": {
395
+ "en-us": "d ˈɛ z ɚ t"
396
+ }
397
+ },
398
+ "example": "I like being in the desert."
399
+ }
400
+ ],
401
+ "bow": [
402
+ {
403
+ "pos": [
404
+ "VB"
405
+ ],
406
+ "pronunciation": {
407
+ "espeak": {
408
+ "en-us": "b ˈaʊ"
409
+ }
410
+ },
411
+ "example": "Bow to the queen."
412
+ },
413
+ {
414
+ "pronunciation": {
415
+ "espeak": {
416
+ "en-us": "b ˈoʊ"
417
+ }
418
+ },
419
+ "example": "I'm looking to buy a new bow for my cello."
420
+ }
421
+ ],
422
+ "row": [
423
+ {
424
+ "pos": [
425
+ "VB"
426
+ ],
427
+ "pronunciation": {
428
+ "espeak": {
429
+ "en-us": "ɹ ˈoʊ"
430
+ }
431
+ },
432
+ "example": "I ordered them in a row."
433
+ },
434
+ {
435
+ "pos": [
436
+ "NNP"
437
+ ],
438
+ "pronunciation": {
439
+ "espeak": {
440
+ "en-us": "ɹ ˈoʊ"
441
+ }
442
+ },
443
+ "example": "Row the boat!"
444
+ },
445
+ {
446
+ "pos": [
447
+ "NNP"
448
+ ],
449
+ "pronunciation": {
450
+ "espeak": {
451
+ "en-us": "ɹ ˈaʊ"
452
+ }
453
+ },
454
+ "example": "There was a row among those people."
455
+ }
456
+ ],
457
+ "wound": [
458
+ {
459
+ "pos": [
460
+ "VB"
461
+ ],
462
+ "pronunciation": {
463
+ "espeak": {
464
+ "en-us": "w ˈaʊ n d"
465
+ }
466
+ },
467
+ "example": "I wound the clock several times."
468
+ },
469
+ {
470
+ "pronunciation": {
471
+ "espeak": {
472
+ "en-us": "w ˈuː n d"
473
+ }
474
+ },
475
+ "example": "She got a wound."
476
+ }
477
+ ],
478
+ "address": [
479
+ {
480
+ "pos": [
481
+ "VB"
482
+ ],
483
+ "pronunciation": {
484
+ "espeak": {
485
+ "en-us": "ɐ d ɹ ˈɛ s"
486
+ }
487
+ },
488
+ "example": "I will address the issue."
489
+ },
490
+ {
491
+ "pronunciation": {
492
+ "espeak": {
493
+ "en-us": "ˈæ d ɹ ɛ s"
494
+ }
495
+ },
496
+ "example": "What is your address?"
497
+ }
498
+ ],
499
+ "entrance": [
500
+ {
501
+ "pos": [
502
+ "VB"
503
+ ],
504
+ "pronunciation": {
505
+ "espeak": {
506
+ "en-us": "ɛ n t ɹ ˈæ n s"
507
+ }
508
+ },
509
+ "example": "The music will entrance you."
510
+ },
511
+ {
512
+ "pronunciation": {
513
+ "espeak": {
514
+ "en-us": "ˈɛ n t ɹ ə n s"
515
+ }
516
+ },
517
+ "example": "Please go to the entrance."
518
+ }
519
+ ],
520
+ "produce": [
521
+ {
522
+ "pos": [
523
+ "NNP"
524
+ ],
525
+ "pronunciation": {
526
+ "espeak": {
527
+ "en-us": "p ɹ ˈoʊ d uː s"
528
+ }
529
+ },
530
+ "example": "I gave her all the produce."
531
+ },
532
+ {
533
+ "pronunciation": {
534
+ "espeak": {
535
+ "en-us": "p ɹ ə d ˈuː s"
536
+ }
537
+ },
538
+ "example": "I will try to produce more."
539
+ }
540
+ ],
541
+ "supposed": [
542
+ {
543
+ "pos": [
544
+ "JJ"
545
+ ],
546
+ "pronunciation": {
547
+ "espeak": {
548
+ "en-us": "s ə p ˈoʊ z ɪ d"
549
+ }
550
+ },
551
+ "example": "That is the supposed solution."
552
+ },
553
+ {
554
+ "pronunciation": {
555
+ "espeak": {
556
+ "en-us": "s ə p ˈoʊ z d"
557
+ }
558
+ },
559
+ "example": "This was supposed to be somwhere there."
560
+ }
561
+ ],
562
+ "learned": [
563
+ {
564
+ "pos": [
565
+ "JJ"
566
+ ],
567
+ "pronunciation": {
568
+ "espeak": {
569
+ "en-us": "l ˈɜː ɹ n ɪ d"
570
+ }
571
+ },
572
+ "example": "She is a very learned person."
573
+ },
574
+ {
575
+ "pronunciation": {
576
+ "espeak": {
577
+ "en-us": "l ˈɜː ɹ n d"
578
+ }
579
+ },
580
+ "example": "She learned it."
581
+ }
582
+ ],
583
+ "blessed": [
584
+ {
585
+ "pos": [
586
+ "JJ"
587
+ ],
588
+ "pronunciation": {
589
+ "espeak": {
590
+ "en-us": "b l ˈɛ s ɪ d"
591
+ }
592
+ },
593
+ "example": "The saints are blessed."
594
+ },
595
+ {
596
+ "pronunciation": {
597
+ "espeak": {
598
+ "en-us": "b l ˈɛ s t"
599
+ }
600
+ },
601
+ "example": "He blessed her."
602
+ }
603
+ ],
604
+ "excuse": [
605
+ {
606
+ "pos": [
607
+ "VB"
608
+ ],
609
+ "pronunciation": {
610
+ "espeak": {
611
+ "en-us": "ɛ k s k j ˈuː z"
612
+ }
613
+ },
614
+ "example": "Excuse me? Can you help me?"
615
+ },
616
+ {
617
+ "pronunciation": {
618
+ "espeak": {
619
+ "en-us": "ɛ k s k j ˈuː s"
620
+ }
621
+ },
622
+ "example": "There's no excuse for that."
623
+ }
624
+ ],
625
+ "lead": [
626
+ {
627
+ "pos": [
628
+ "NNP"
629
+ ],
630
+ "pronunciation": {
631
+ "espeak": {
632
+ "en-us": "l ˈɛ d"
633
+ }
634
+ },
635
+ "example": "Lead is a dangerous substance."
636
+ },
637
+ {
638
+ "pronunciation": {
639
+ "espeak": {
640
+ "en-us": "l ˈiː d"
641
+ }
642
+ },
643
+ "example": "You should lead the way."
644
+ }
645
+ ],
646
+ "nice": [
647
+ {
648
+ "pos": [
649
+ "NNP"
650
+ ],
651
+ "case": "capitalized",
652
+ "pronunciation": {
653
+ "espeak": {
654
+ "en-us": "n ˈiː s"
655
+ }
656
+ },
657
+ "example": "I'm flying to Nice."
658
+ }
659
+ ],
660
+ "reading": [
661
+ {
662
+ "pos": [
663
+ "NNP"
664
+ ],
665
+ "case": "capitalized",
666
+ "pronunciation": {
667
+ "espeak": {
668
+ "en-us": "ɹ ˈɛ d ɪ ŋ"
669
+ }
670
+ },
671
+ "example": "I'm driving to Reading."
672
+ }
673
+ ]
674
+ }