Skip to main content

冰岛语的字形到音素 (g2p) 转换器

项目描述

Ice-g2p : 冰岛语的音标(字形到音素)

Ice-g2p 是一个用于冰岛语自动音标的模块。Ice-g2p 可以用作独立的命令行工具或库,例如可以用于语音合成(TTS)前端管道中的最终文本处理步骤。

Ice-g2p 使用手动管理的发音词典 和基于 LSTM 的g2p 模型来处理未知单词。它可用于以四种发音形式转录冰岛语,还可以使用特殊模型转录冰岛语文本中可能出现的英语单词,使用冰岛语电话集。

设置

从 PyPI 安装(到活动的虚拟环境中):

$ pip install ice-g2p
# Download the g2p models
$ fetch-models     

克隆存储库并在项目根目录中创建虚拟环境。安装要求:

$ git clone git@github.com:grammatek/ice-g2p.git
$ cd ice-g2p
$ python3 -m venv g2p-venv
$ source g2p-venv/bin/activate
$ pip install -e .
$ fetch-models

命令行界面

输入字符串/文本需要标准化。该模块仅处理冰岛字母表中的小写字符,没有标点符号或其他字符,除非启用了语言检测(请参阅标志)

允许的字符:[aábcðdeéfghiíjklmnoóprstuúvxyýzþæö]。如果在输入中找到其他字符,则跳过相应标记的转录并将通知写入标准输出。

要转录文本,目前有两个主要选项可用,直接从标准输入到标准输出或从文件或文件集合(目录)

$ ice-g2p -i 'hljóðrita þetta takk'
l_0 j ou D r I t a T E h t a t_h a h k

$ ice-g2p -i 'þetta war fürir þig'
war contains non valid character(s) {'w'}, skipping transcription.
fürir contains non valid character(s) {'ü'}, skipping transcription.
T E h t a   T I: G

$ ice-g2p -if file_to_transcribe.txt

如果输入来自标准输入,则输出将写入标准输出。来自文件的输入被写入具有相同名称且后缀为“_transcribed.tsv”的文件。这些文件被逐行转录并相应地写出来。

标志

可用选项:

--infile INFILE, -if INFILE
                    inputfile or directory
--inputstr INPUTSTR, -i INPUTSTR
                      input string
--sep SEP_STR, -s SEP_STR  word separator to use, if not present, no word separators are used
--syll SYLL_STR -y SYLL_STR syllable separator to use, if not present, no syllabification will be performed
# boolean arguments
--stress, -t          perform stress labeling, ONLY APPLICABLE IN COMBINATION WITH --syll ARGUMENT!
--keep, -k            keep original
--sep, -s             use word separator
--dict, -d            use pronunciation dictionary
--langdetect, -l      use word-based language detection
--phoneticalpha, -p   return the output in a specific alphabet (default: SAMPA, currently also available: IPA, SINGLE, FLITE)

使用该-k标志保留原始字素字符串,对于文件输入/输出,将原始字符串写入制表符分隔的输出文件的第一列,并将音标写入第二列。标志将-s定义的单词分隔符添加到转录中,并使用-y标志将音节添加到带有所选分隔符的转录中。单词和音节分隔符可以是相同或不同的符号。音节分隔的常用符号是点.结合音节,可以使用-t标志添加重音标签。使用该-d标志,首先在现有发音词典中查找所有标记,然后自动 g2p 仅是词典中未包含的单词的后备。

$ ice-g2p -i 'hljóðrita þetta takk' -k -s '-'
hljóðrita þetta takk : l_0 j ou D r I t a - T E h t a - t_h a h k

$ ice-g2p -i 'hljóðrita þetta takk' -k -y '.' -s '.' -t
hljóðrita þetta takk : l_0 j ou1 D . r I0 . t a0 . T E1 h . t a0 . t_h a1 h k

使用该-l标志可以进行基于单词的语言检测,其中被认为是外来语的单词由受过英语单词而不是冰岛语训练的 LSTM 转录。如果使用此标志,模块可以处理常见的非冰岛语字符,包括所有英文字母:

$ ice-g2p -i 'hljóðrita þetta please'
l_0 j ou D r I t a T E h t a t_h a p_h l E: a s E

$ ice-g2p -i 'hljóðrita þetta please' -l
l_0 j ou D r I t a T E h t a p_h l i: s

导入到项目

要在 Python 项目中使用 ice-g2p,请导入转录器:

from ice_g2p.transcriber import Transcriber

g2p = Transcriber()
grapheme_string = 'halló heimur'
transcribed = g2p.transcribe(grapheme_string)
# transcribed == 'h a l ou h ei: m Y r'

要使用其他拼音字母,也请导入转换器:

from ice_g2p.transcriber import Transcriber
from ice_g2p.converter import Converter

g2p = Transcriber()
conv = Converter()
grapheme_string = 'góðan daginn heimur'
transcribed = g2p.transcribe(grapheme_string)
# transcribed == 'k ou: D a n t ai j I n h ei: m Y r'
converted = conv.convert(transcribed, 'SAMPA', 'IPA')
# converted == 'k ouː ð a n t ai j ɪ n h eiː m ʏ r'

数据

文件sampa_ipa_single_flite.csv包含已在冰岛语音技术项目和语言技术程序中使用的所有语音字母表。

  • X-SAMPA
  • 国际音标
  • 单一:一种自定义字母表,设计为每部手机仅包含一个字符
  • Flite:Festival/Flite 的自定义字母,仅包含 ascii 字母字符(无 ':'、'_' 或数字)

疑难解答与查询

此应用程序仍在开发中。如果您遇到任何错误,请随时在 问题跟踪器中打开问题。您也可以通过电子邮件与我们联系。

贡献

您可以通过分叉、创建私有分支和打开新的拉取请求来为该项目做出贡献。

执照

Grammatek

版权所有 © 2020, 2021 Grammatek ehf。

该软件是在冰岛政府 5 年语言技术计划的赞助下开发的,在 此处此处(英语)进行了描述。

该软件根据Apache 许可证获得许可

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ice_g2p-1.2.0.tar.gz (4.7 MB 查看哈希

已上传 source

内置分布

ice_g2p-1.2.0-py3-none-any.whl (4.7 MB 查看哈希

已上传 py3