使用国际音标(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 |