跳转到主要内容

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

IPA中的音素由不同的组件组成

  • 字母
    • 非组合 Unicode字符,代表一个独特的人类声音(音素)
  • 超音段特征
    • 非组合 Unicode字符,代表在单个元音或辅音以上的语言特征
    • 重音(ˈˌ)、延长(ː)、连接/连结(t͡s)和短/长停顿(| ‖)是超音段特征
  • 变音符号

有关更多详细信息,请参阅 IPA 图表

音素

虽然音素代表单个声音,但音素是语言中具有意义的语音单位,可以区分不同的单词。一个音素可能由许多不同的音素实现。例如,在标准德语中的 /r/ 可以实现为腭音(χ/ʁ)、腭近音(ɹ)或腭击音或颤音(ʀ/r)。

音素也可能由多个音素组成,例如美式英语中的双元音 (例如在“cow”中的“ow”)。

gruut-ipa 支持的语言在 gruut_ipa/data 目录中包含一个 phonemes.txt 文件。此文件具有以下格式

<phoneme> <example> [<replace> ...]

其中 <phoneme> 是一组IPA字母,如 ɶ<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͡ʃ  z a ɪ p  e ɪ 

将音素分组为特定语言的音素

$ python3 -m gruut_ipa phonemes en-us "/dʒʌst ə kaʊ/"
d͡ʒ ʌ s t ə k 

在IPA、espeaksampa 之间进行转换

$ 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ʊ

备选音素集

一些语言有多个音素集可供选择

  • 美国英语(en-us)
    • CMUDict (en-us/cmudict)
    • Zamia (en-us/zamia)
  • 斯瓦希里语(sw)

从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 (101.6 kB 查看散列值)

上傳時間

由以下支持