keep updated
This commit is contained in:
@@ -163,6 +163,10 @@ export default withMermaid(
|
||||
text: "2.1.9. aɪ... əʊ",
|
||||
link: "/sounds-of-american-english/2.1.9-aɪ",
|
||||
},
|
||||
{
|
||||
text: "2.1.10. ɤ",
|
||||
link: "/sounds-of-american-english/2.1.10-ɤ",
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
BIN
1000-hours/public/audios/us/class-us-female.mp3
Normal file
BIN
1000-hours/public/audios/us/class-us-female.mp3
Normal file
Binary file not shown.
BIN
1000-hours/public/audios/us/class-us-male.mp3
Normal file
BIN
1000-hours/public/audios/us/class-us-male.mp3
Normal file
Binary file not shown.
BIN
1000-hours/public/jupyter-notebooks/class-us-female.mp3
Normal file
BIN
1000-hours/public/jupyter-notebooks/class-us-female.mp3
Normal file
Binary file not shown.
BIN
1000-hours/public/jupyter-notebooks/class-us-male.mp3
Normal file
BIN
1000-hours/public/jupyter-notebooks/class-us-male.mp3
Normal file
Binary file not shown.
@@ -197,7 +197,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 17,
|
||||
"execution_count": 1,
|
||||
"id": "cecefa85-b37d-457e-9e99-e582dabdfb9f",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@@ -205,6 +205,8 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"pygame 2.5.2 (SDL 2.28.3, Python 3.12.1)\n",
|
||||
"Hello from the pygame community. https://www.pygame.org/contribute.html\n",
|
||||
"Files created!\n"
|
||||
]
|
||||
}
|
||||
@@ -216,7 +218,7 @@
|
||||
"import edge_tts\n",
|
||||
"import pygame\n",
|
||||
"\n",
|
||||
"TEXT = \"I am,He is,She is,They are,Go away,Do all,Do it,Throw it\"\n",
|
||||
"TEXT = \"class\"\n",
|
||||
"Wordlist = TEXT.split(\",\")\n",
|
||||
"\n",
|
||||
"for w in Wordlist:\n",
|
||||
|
||||
@@ -1,223 +0,0 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "b94f103d-ac43-4d13-83cb-eb5090220881",
|
||||
"metadata": {
|
||||
"jupyter": {
|
||||
"source_hidden": true
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"# EdgeTTS\n",
|
||||
"\n",
|
||||
"https://github.com/rany2/edge-tts\n",
|
||||
"\n",
|
||||
"edge-tts is a Python module that allows you to use Microsoft Edge's online text-to-speech service from within your Python code or using the provided edge-tts or edge-playback command."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "77deb08f-fec3-4327-b2f9-1c893aacaddc",
|
||||
"metadata": {
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"!pip install edge-tts\n",
|
||||
"!pip install pygame"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "9aad6634-e833-4ec4-b285-84e051329712",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"pygame 2.5.2 (SDL 2.28.3, Python 3.12.1)\n",
|
||||
"Hello from the pygame community. https://www.pygame.org/contribute.html\n",
|
||||
"Files created!\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import asyncio\n",
|
||||
"import edge_tts\n",
|
||||
"import pygame\n",
|
||||
"\n",
|
||||
"TEXT = \"\"\"\n",
|
||||
"serendipity\n",
|
||||
"\"\"\"\n",
|
||||
"\n",
|
||||
"Wordlist = TEXT.split(\",\")\n",
|
||||
"\n",
|
||||
"for w in Wordlist:\n",
|
||||
" for VOICE in ['en-US-GuyNeural', 'en-US-JennyNeural']:\n",
|
||||
" w = w.strip()\n",
|
||||
" OUTPUT_FILE = f\"{w.replace(' ', '-').replace('?', '')}-{VOICE.replace('en-', '').replace('GuyNeural', 'guy').replace('JennyNeural', 'jen').lower()}.mp3\"\n",
|
||||
" communicate = edge_tts.Communicate(w, VOICE)\n",
|
||||
" await communicate.save(OUTPUT_FILE) \n",
|
||||
"\n",
|
||||
"print(\"Files created!\") "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "1e54069c-db63-45ba-86e8-726730b19255",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import asyncio\n",
|
||||
"import edge_tts\n",
|
||||
"import pygame\n",
|
||||
"\n",
|
||||
"TEXT = \"Jane,dramatic,young,girl,loves,to,read,books,at,leisure,in,rooms,or,play,on,a,sunny,day,outdoor,here,and,there,under,the,trees,with,boys,She,vowed,to,buy,a,red,ear,dog,She,thought,it,was,unique,for,sure,Now,she,feeds,it,dough,nuts,and,cheese,bar\"\n",
|
||||
"Wordlist = TEXT.split(\",\")\n",
|
||||
"\n",
|
||||
"for w in Wordlist:\n",
|
||||
" for VOICE in ['zh-CN-YunxiNeural', 'zh-CN-XiaoxiaoNeural']:\n",
|
||||
" w = w.strip()\n",
|
||||
" OUTPUT_FILE = f\"{w}-{VOICE.replace('YunxiNeural', 'male').replace('XiaoxiaoNeural', 'female').lower()}.mp3\"\n",
|
||||
" communicate = edge_tts.Communicate(w, VOICE)\n",
|
||||
" await communicate.save(OUTPUT_FILE) \n",
|
||||
"\n",
|
||||
"print(\"Files created!\") "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "09d5ab47-5807-4ded-a8b9-45277831d425",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# VOICE = \"en-US-GuyNeural\" # Male\n",
|
||||
"# VOICE = \"en-US-AnaNeural\" # Female\n",
|
||||
"# VOICE = \"en-US-AndrewNeural\" # Male\n",
|
||||
"# VOICE = \"en-US-AriaNeural\" # Female\n",
|
||||
"# VOICE = \"en-US-AvaNeural\" # Female\n",
|
||||
"# VOICE = \"en-US-BrianNeural\" # Male\n",
|
||||
"# VOICE = \"en-US-ChristopherNeural\" # Male\n",
|
||||
"# VOICE = \"en-US-EmmaNeural\" # Female\n",
|
||||
"# VOICE = \"en-US-EricNeural\" # Male\n",
|
||||
"# VOICE = \"en-US-GuyNeural\" # Male\n",
|
||||
"# VOICE = \"en-US-JennyNeural\" # Female\n",
|
||||
"# VOICE = \"en-US-MichelleNeural\" # Female\n",
|
||||
"# VOICE = \"en-US-RogerNeural\" # Male\n",
|
||||
"# VOICE = \"en-US-SteffanNeural\" # Male\n",
|
||||
"# VOICE = \"en-GB-LibbyNeural\" # Female\n",
|
||||
"# VOICE = \"en-GB-MaisieNeural\" # Female\n",
|
||||
"# VOICE = \"en-GB-RyanNeural\" # Male\n",
|
||||
"# VOICE = \"en-GB-SoniaNeural\" # Female\n",
|
||||
"# VOICE = \"en-GB-ThomasNeural\" # Male\n",
|
||||
"# VOICE = \"en-AU-NatashaNeural\" # Female\n",
|
||||
"# VOICE = \"en-AU-WilliamNeural\" # Male\n",
|
||||
"# VOICE = \"en-CA-ClaraNeural\" # Female\n",
|
||||
"# VOICE = \"en-CA-LiamNeural\" # Male\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "862f0948",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"pygame.mixer.init()\n",
|
||||
"pygame.mixer.music.load(OUTPUT_FILE)\n",
|
||||
"pygame.mixer.music.play()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "00939422-fbf9-4842-b82a-b6106624c075",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"pygame 2.5.2 (SDL 2.28.3, Python 3.11.5)\n",
|
||||
"Hello from the pygame community. https://www.pygame.org/contribute.html\n",
|
||||
"Files created!\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import asyncio\n",
|
||||
"import edge_tts\n",
|
||||
"import pygame\n",
|
||||
"\n",
|
||||
"TEXT = \"a,and,at,bar,books,boys,buy,cheese,day,dog,dough,dramatic,ear,feeds,for,girl,here,in,it,Jane,leisure,loves,Now,nuts,on,or,outdoor,play,read,red,rooms,She,sunny,sure,the,there,thought,to,trees,under,unique,vowed,was,with,young\"\n",
|
||||
"Wordlist = TEXT.split(\",\")\n",
|
||||
"\n",
|
||||
"for w in Wordlist:\n",
|
||||
" for VOICE in ['en-US-GuyNeural', 'en-US-JennyNeural', 'en-GB-RyanNeural', 'en-GB-SoniaNeural']:\n",
|
||||
" w = w.strip()\n",
|
||||
" OUTPUT_FILE = f\"{w}-{VOICE.replace('GuyNeural', 'Guy-Male').replace('JennyNeural', 'Jenny-Female').replace('RyanNeural', 'Ryan-Male').replace('SoniaNeural', 'Sonia-Female').lower()}.mp3\"\n",
|
||||
" communicate = edge_tts.Communicate(w, VOICE)\n",
|
||||
" await communicate.save(OUTPUT_FILE) \n",
|
||||
"\n",
|
||||
"print(\"Files created!\") "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "93f68a91-7e6b-45ef-932e-533b695e4ac1",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# ru-RU-DmitryNeural\n",
|
||||
"# ko-KR-InJoonNeural"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "474c3f39-11ed-4d0a-b039-63df8b270044",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import os\n",
|
||||
"print(os.getcwd())"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "2128587f-e6c8-488d-8c40-6c958b9c735e",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.1"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
# 2.1. 元音(Vowels)
|
||||
|
||||
英文总计 6 个基础元音,分别是 `ʌ`、`e`、`ə`、`ɪ`、`ʊ`、`ɒ` —— 这 6 个短元音就好像是 “根” 一样。剩下的十几个元音要么是它们略有变化的更长版本,即,长元音 —— `ɑː, æ, əː, iː, uː, ɔː`;要么是它们的组合版本,即,双元音 —— `aɪ, eɪ, ɔɪ, aʊ, oʊ, er, ɪr, ʊr`。
|
||||
英文总计 6 个基础元音,分别是 `ʌ`、`e`、`ə`、`ɪ`、`ʊ`、`ɒ` —— 这 6 个短元音就好像是 “根” 一样。剩下的十几个元音要么是它们略有变化的更长版本,即,长元音 —— `ɑː, æ, ɝː, i, iː, uː, ɔː`;要么是它们的组合版本,即,双元音 —— `aɪ, eɪ, ɔɪ, aʊ, oʊ, er, ɪr, ʊr`。
|
||||
|
||||
In English, there are 6 basic vowels: `ʌ`, `e`, `ə`, `ɪ`, `ʊ`, and `ɒ`. Think of these 6 short vowels like the *roots* of a tree. The remaining more than a dozen vowels are either slightly modified, longer versions of these - the *long* vowels, which are `ɑː, æ, əː, iː, uː, ɔː`; or, they are combinations of these basic sounds, known as *diphthongs* - `aɪ, eɪ, ɔɪ, aʊ, oʊ, er, ɪr, ʊr`.
|
||||
In English, there are 6 basic vowels: `ʌ`, `e`, `ə`, `ɪ`, `ʊ`, and `ɒ`. Think of these 6 short vowels like the *roots* of a tree. The remaining more than a dozen vowels are either slightly modified, longer versions of these - the *long* vowels, which are `ɑː, æ, ɝː, i, iː, uː, ɔː`; or, they are combinations of these basic sounds, known as *diphthongs* - `aɪ, eɪ, ɔɪ, aʊ, oʊ, er, ɪr, ʊr`.
|
||||
|
||||
> 在英式英语中,`er, ɪr, ʊr` 这 3 个双元音分别读作 `eə, ɪə, ʊə`。
|
||||
>
|
||||
|
||||
9
1000-hours/sounds-of-american-english/2.1.10-ɤ.md
Normal file
9
1000-hours/sounds-of-american-english/2.1.10-ɤ.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 2.1.10. `ɤ`
|
||||
|
||||
人类的语音在最底层是相通的 —— 最明显的例证就是所有的语言都一样,不仅都以元音为核心,并且,都有大致相同的基础元音音素,比如 `ɑ`、`i`、`ʊ`、`e`、`ɔ`…… 日文就恰好只有这五个母音。英文还另外有一个 `ə`;而韩文比英文还要多出一个 `ɤ`<span class="speak-word-inline" data-audio-other="/audios/us/Close-mid_back_unrounded_vowel.ogg.mp3"></span>(韩文字符为 `ᅳ`) —— 这个音中文也有,比如,在 “思念” 这个词中, “思”(`sī`)的韵母就是这个音。
|
||||
|
||||
Human speech, at its core, is universal - the clearest example being that all languages share certain fundamental tenets. Every language places vowels at their heart and maintains a similar basic vowel phonemes such as `ɑ`, `i`, `ʊ`, `e`, `ɔ`, amongst others. Take Japanese for instance; it uses precisely these five vowels only. English includes one more: `ə`. Korean even outpaces English by adding another one —`ɤ`<span class="speak-word-inline" data-audio-other="/audios/us/Close-mid_back_unrounded_vowel.ogg.mp3"></span> (represented in Hangul as `ᅳ`). Interestingly enough you can find this sound in Mandarin Chinese too — like in `sī` of "思念" `sīniàn`, meaning to miss or remember.
|
||||
|
||||
虽然英文的音标列表里并没有收录 `ɤ` 这个音,可实际上,你试试就知道了:`d` 被读作 `dɤ`,`g` 被读作 `gɤ` —— 其中的 `ɤ` 很轻很短;同样,`t` 实际上被读作 `tɤ`,`k` 被读作 `kɤ` —— 其中的 `ɤ` 没有气流振动。
|
||||
|
||||
Even though the phonetic symbol `ɤ` isn't included in English phonetic chart, you'll notice something interesting if you try it out: the letter `d` is actually pronounced as `dɤ`, and `g` is pronounced as `gɤ`. Here, the `ɤ` sound is very light and brief. Similarly, `t` is actually pronounced as `tɤ`, and `k` is pronounced as `kɤ`, with the `ɤ` not involving any airflow vibration.
|
||||
@@ -14,7 +14,7 @@ In Mandarin Chinese, the starting position of the tongue tip for the `t` and `d`
|
||||
|
||||
For Chinese speakers, it's a pretty tough to correct at first because the tongue tip instinctively goes to the teeth, not the *alveolar ridge*. It can only be corrected through intense and frequent practice to build a new habit.
|
||||
|
||||
另外,就好像 `p/b` 在发音的时候会自然带着一个很轻的 `ʊ` 一样,`t/d` 也会自然带着一个很轻的元音,不过,不是 `ə` 而是 `ɤ`<span class="speak-word-inline" data-audio-other="/audios/us/Close-mid_back_unrounded_vowel.ogg.mp3"></span> —— 之前提到过,相当于中文里 “思念” 的 “思”(`sī`)的韵母。
|
||||
另外,就好像 `p/b` 在发音的时候会自然带着一个很轻的 `ʊ` 一样,`t/d` 也会自然带着一个很轻的元音,不过,不是 `ə` 而是 `ɤ`<span class="speak-word-inline" data-audio-other="/audios/us/Close-mid_back_unrounded_vowel.ogg.mp3"></span> —— 之前提到过,相当于中文里 “思念” 的 “思”(`sī`)的韵母([2.1.10](2.1.10-ɤ))。
|
||||
|
||||
Additionally, just as the `p` and `b` sound naturally carries a slight `ʊ` sound in its pronunciation, the `t` and `d` sound also carries a light vowel sound. But instead of 'ə', it's `ɤ`<span class="speak-word-inline" data-audio-other="/audios/us/Close-mid_back_unrounded_vowel.ogg.mp3"></span> - as previously mentioned, this is equivalent to the vowel in the Chinese word for 思, which is `sī.`
|
||||
|
||||
|
||||
@@ -10,6 +10,6 @@ Firstly, to pronounce these two sounds, the back part of the tongue must be rais
|
||||
|
||||

|
||||
|
||||
就好像 `t/d` 在发音的时候一样,`k/g` 也会自然带着一个很轻的元音,再一次,不是 `ə` 而是 `ɤ`<span class="speak-word-inline" data-audio-other="/audios/us/Close-mid_back_unrounded_vowel.ogg.mp3"></span>,但只有气流通过,没有声带振动。
|
||||
就好像 `t/d` 在发音的时候一样,`k/g` 也会自然带着一个很轻的元音,再一次,不是 `ə` 而是 `ɤ`<span class="speak-word-inline" data-audio-other="/audios/us/Close-mid_back_unrounded_vowel.ogg.mp3"></span>,但只有气流通过,没有声带振动。请仔细体会一下 *class* 的发音:`/klæs/`<span class="speak-word-inline" data-audio-us-male="/audios/us/class-us-male.mp3" data-audio-us-female="/audios/us/class-us-female.mp3"></span> —— 其中 `ɤ` 的音色,虽然轻微但也明显。
|
||||
|
||||
Moreover, much like the `t/d` sounds, `k/g` also naturally carries a slight vowel sound. Once again, it's not `ə` but `ɤ`<span class="speak-word-inline" data-audio-other="/audios/us/Close-mid_back_unrounded_vowel.ogg.mp3"></span>, where the air is flowing through without any vocal cord vibration.
|
||||
Moreover, much like the `t/d` sounds, `k/g` also naturally carries a slight vowel sound. Once again, it's not `ə` but `ɤ`<span class="speak-word-inline" data-audio-other="/audios/us/Close-mid_back_unrounded_vowel.ogg.mp3"></span>, where the air is flowing through without any vocal cord vibration. Pay close attention to the pronunciation of class: `/klæs/`<span class="speak-word-inline" data-audio-us-male="/audios/us/class-us-male.mp3" data-audio-us-female="/audios/us/class-us-female.mp3"></span>. The sound ɤ is subtle yet noticeable.
|
||||
|
||||
Reference in New Issue
Block a user