使用国际音标(IPA)操纵发音的库
项目描述
Gruut IPA
用于操作 国际音标 (IPA) 发音的库。
特性包括
- 获取音素的类别和详情,例如ɶ的 "开口前不圆唇元音"
- 将IPA发音分成
- 音素组(从/ˈt͡ʃuːz/到/ˈt͡ʃ uː z/)
- 音素组(从/kˈaʊ/到/k ˈaʊ/ 对美国英语而言)
- 在
支持的语言
- 阿拉伯语(ar)
- 捷克语(cs-cz)
- 德语(de-de)
- 美国英语(en-us)
- 英国英语(en-gb)
- 西班牙语(es-es)
- 波斯语/ فارسی(fa)
- 西班牙语(es-es)
- 意大利语(it-it)
- 卢森堡语(lb-lb)
- 荷兰语(nl)
- 葡萄牙语(pt)
- 俄语(ru-ru)
- 斯瓦希里语(sw)
安装
$ pip install gruut-ipa
依赖项
- Python 3.6或更高版本
对于命令行使用,您可能还需要
使用以下方式安装
$ sudo apt-get install espeak jq
音素和音节
IPA中的音素由不同的组件组成
- 字母
- 非组合 Unicode字符,代表一个独特的人类声音(音素)
- 超音段特征
- 非组合 Unicode字符,代表在单个元音或辅音以上的语言特征
- 重音(ˈˌ)、延长(ː)、连接/连结(t͡s)和短/长停顿(| ‖)是超音段特征
- 变音符号
有关更多详细信息,请参阅 IPA 图表。
音素
虽然音素代表单个声音,但音素是语言中具有意义的语音单位,可以区分不同的单词。一个音素可能由许多不同的音素实现。例如,在标准德语中的 /r/ 可以实现为腭音(χ/ʁ)、腭近音(ɹ)或腭击音或颤音(ʀ/r)。
音素也可能由多个音素组成,例如美式英语中的双元音 aʊ(例如在“cow”中的“ow”)。
gruut-ipa 支持的语言在 gruut_ipa/data 目录中包含一个 phonemes.txt 文件。此文件具有以下格式
<phoneme> <example> [<replace> ...]
其中 <phoneme> 是一组IPA字母,如 ɶ 或 aʊ。<example> 是包含 <phoneme> 的发音的单词。之后,有一个或多个可选的 <replace> 字符串,将用 <phoneme> 替换。上述德语 /r/ 的示例可能表示为
r brot χ ʁ ɹ ʀ
特定语言的音素来自 语音学分析 和来自 公共数据库。最终,它们旨在捕捉来自 Wiktionary 的发音。
用法
打印有关音素的JSON信息
$ python3 -m gruut_ipa describe "ˈãː" | jq .
{
"text": "ˈãː",
"letters": "a",
"stress": "primary",
"height": "open",
"placement": "front",
"rounded": false,
"type": "Vowel",
"nasalated": true,
"elongated": true
}
将IPA发音拆分为音素
$ python3 -m gruut_ipa phones "ˈjɛs|ˈt͡ʃuːz aɪpiːeɪ‖"
ˈj ɛ s | ˈt͡ʃ uː z a ɪ p iː e ɪ ‖
将音素分组为特定语言的音素
$ python3 -m gruut_ipa phonemes en-us "/dʒʌst ə kaʊ/"
d͡ʒ ʌ s t ə k aʊ
$ python3 -m gruut_ipa convert ipa espeak "mʊmˈbaɪ"
[[mUm'baI]]
$ python3 -m gruut_ipa convert espeak ipa "[[D,Is Iz sVm f@n'EtIk t'Ekst 'InpUt]]"
ðˌɪs ɪz sʌm fɘnˈɛtɪk tˈɛkst ˈɪnpʊt
链式命令
$ python3 -m gruut_ipa convert espeak ipa "[[k'aU]]" | \
python3 -m gruut_ipa phonemes en-us --keep-stress
k ˈaʊ
备选音素集
一些语言有多个音素集可供选择
从IPA转换为备选音素集
$ python3 -m gruut_ipa convert ipa en-us/cmudict "h ɛ l ˈoʊ w ˈɚ l d"
HH EH0 L OW1 W ER1 L D
从备选音素集转换为IPA
$ python3 -m gruut_ipa convert en-us/cmudict ipa "HH EH0 L OW1 W ER1 L D"
h ɛ l ˈoʊ w ˈɚ l d
脚本
使用 speak-ipa 脚本来让 espeak 发音IPA。您可能需要先 apt-get install espeak。
$ echo '/hɛloʊ wɝld/' | bin/speak-ipa en-us -s 60 -w 'hello world.wav'
$ aplay 'hello world.wav'
音素
可以使用以下内容打印支持的IPA音素
$ python3 -m gruut_ipa print
{"text": "i", "letters": "i", "stress": "none", "height": "close", "placement": "front", "rounded": false, "type": "Vowel", "nasalated": false, "elongated": false, "description": "close front unrounded vowel", "espeak": "i", "sampa": "i"}
{"text": "y", "letters": "y", "stress": "none", "height": "close", "placement": "front", "rounded": true, "type": "Vowel", "nasalated": false, "elongated": false, "description": "close front rounded vowel", "espeak": "y", "sampa": "y"}
...
可以使用 jq 生成一个很好的表格
$ python3 -m gruut_ipa print | \
jq -r '. | "\(.text)\t\(.espeak)\t\(.sampa)\t\(.description)"'
转换为Markdown
| IPA | eSpeak | Sampa | 描述 |
|---|---|---|---|
| i | i | i | 闭前不圆唇元音 |
| y | y | y | 闭前圆唇元音 |
| ɨ | i'' | 1 | 闭中不圆唇元音 |
| ʉ | u'' | } | 闭中圆唇元音 |
| ɯ | u- | M | 闭后不圆唇元音 |
| u | u | u | 闭后圆唇元音 |
| ɪ | I | I | 近闭近前不圆唇元音 |
| ʏ | I. | Y | 近闭近前圆唇元音 |
| ʊ | U | U | 近闭近后圆唇元音 |
| e | e | e | 闭中前不圆唇元音 |
| ø | Y | 2 | 闭中前圆唇元音 |
| ɘ | @ | @\ | 闭中中不圆唇元音 |
| ɵ | @. | 8 | 闭中中圆唇元音 |
| ɤ | o- | 7 | 闭中后不圆唇元音 |
| o | o | o | 闭中后圆唇元音 |
| ɛ | E | E | 半闭前不圆唇元音 |
| œ | W | 9 | 半闭前圆唇元音 |
| ɜ | V'' | 3 | 半闭中不圆唇元音 |
| ɞ | O'' | 3\ | 半闭中圆唇元音 |
| ʌ | V | V | 半闭后不圆唇元音 |
| ɔ | O | O | 半闭后圆唇元音 |
| æ | a | { | 近开前不圆唇元音 |
| ɐ | V | 6 | 近开中不圆唇元音 |
| a | a | a | 开元前不圆唇元音 |
| ɶ | W | & | 开元前圆唇元音 |
| ɑ | A | A | 开元后不圆唇元音 |
| ɒ | A. | Q | 开元后圆唇元音 |
| m | m | m | 浊双唇鼻音 |
| ɱ | M | F | 浊唇齿鼻音 |
| n | n | n | 浊齿龈鼻音 |
| ɳ | n. | n` | 浊舌根鼻音 |
| ŋ | N | N | 浊软腭鼻音 |
| ɴ | n" | N\ | 浊喉音鼻音 |
| p | p | p | 清双唇塞音 |
| b | b | b | 浊双唇塞音 |
| t | t | t | 清齿龈塞音 |
| d | d | d | 浊齿龈塞音 |
| ʈ | t. | t` | 清舌尖塞音 |
| ɖ | d. | d` | 浊舌尖塞音 |
| c | c | c | 清硬腭塞音 |
| ɟ | J | J\ | 浊硬腭塞音 |
| k | k | k | 清软腭塞音 |
| ɡ | g | g | 浊软腭塞音 |
| g | g | g | 浊软腭塞音 |
| q | q | q | 清喉音塞音 |
| ɢ | G | G\ | 浊喉音塞音 |
| ʡ | >\ | 清咽音塞音 | |
| ʔ | ? | ? | 清声门塞音 |
| p͡f | pf | pf | 清唇齿擦音 |
| b͡v | bv | bv | 浊齿擦音 |
| t̪͡s | ts | t_ds | 清齿擦音 |
| t͡s | ts | ts | 清齿龈擦音 |
| d͡z | dz | dz | 浊齿龈擦音 |
| t͡ʃ | tS | tS | 清后齿龈擦音 |
| d͡ʒ | dZ | dZ | 浊后齿龈擦音 |
| ʈ͡ʂ | tS | ts` | 清舌尖擦音 |
| ɖ͡ʐ | dz | dz` | 浊舌尖擦音 |
| t͡ɕ | tS; | ts\ | 清硬腭擦音 |
| d͡ʑ | dZ; | dz\ | 浊硬腭擦音 |
| k͡x | k | k_x | 清软腭擦音 |
| ɸ | F | p\ | 清双唇擦音 |
| β | B | B | 浊双唇擦音 |
| f | f | f | 清唇齿擦音 |
| v | v | v | 浊唇齿擦音 |
| θ | T | T | 清齿擦音 |
| ð | D | D | 浊齿擦音 |
| s | s | s | 清齿龈擦音 |
| z | z | z | 浊齿龈擦音 |
| ʃ | S | S | 清后齿龈擦音 |
| ʒ | Z | Z | 浊后齿龈擦音 |
| ʂ | s. | s` | 清舌尖擦音 |
| ʐ | z. | z` | 浊硬腭擦音 |
| ç | C | C | 清硬腭擦音 |
| x | x | x | 清软腭擦音 |
| ɣ | Q | G | 浊软腭擦音 |
| χ | X | X | 清喉音擦音 |
| ʁ | g" | R | 浊喉音擦音 |
| ħ | H | X\ | 清咽音擦音 |
| h | h | h | 清声门擦音 |
| ɦ | h<?> | h\ | 浊声门擦音 |
| w | w | w | 浊双唇近音 |
| ʋ | v# | v\ | 浊唇齿近音 |
| ɹ | r | r\ | 浊齿龈近音 |
| ɻ | r. | r\` | 浊舌尖近音 |
| j | j | j | 浊硬腭近音 |
| ɰ | Q | M\ | 浊软腭近音 |
| ⱱ | ⱱ | ⱱ | 浊唇齿颤音 |
| ɾ | * | 4 | 浊齿龈颤音 |
| ɽ | *. | r` | 浊舌尖颤音 |
| ʙ | b | B\ | 浊双唇颤音 |
| r | r | r | 浊齿龈颤音 |
| ʀ | r" | R\ | 浊喉音颤音 |
| l | l | l | 浊齿龈侧近音 |
| ɫ | l | 5 | 浊齿龈侧近音 |
| ɭ | l. | l` | 浊舌尖侧近音 |
| ʎ | l^ | L | 元音硬腭側邊近音 |
| ʟ | L | L\ | 元音喉音側邊近音 |
| ə | @ | @ | 短元音 |
| ɚ | 3 | @` | r色短元音 |
| ɝ | 3 | @` | r色短元音 |
| ɹ̩ | r- | r\̩ | 浊齿龈近音 |
如果您看到任何錯誤或遺漏,請告訴我。
項目詳情
關閉
gruut-ipa-0.13.0.tar.gz 的散列值
| 算法 | 散列摘要 | |
|---|---|---|
| SHA256 | 71776eb99f46e119ab14d3d4e536f54317133607cc2f6bad9711ab51f1bec66e |
|
| MD5 | e2b33af3c4c79dc9e39f9cf2384d0382 |
|
| BLAKE2b-256 | 519f7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7 |