當前位置:
首頁 > 知識 > 一個簡單的英文字形轉音素的 Python 模塊

一個簡單的英文字形轉音素的 Python 模塊

g2p 是一個簡單的英文字形轉音素的 Python 模塊。

該功能在語音合成中是必不可少的。不像德語和西班牙語這類語言,英文的發音很難從拼寫中推斷出來,所以人們要知道某個單詞的發音,最好的方式是查閱字典。但是,這種方法至少有兩個問題。 首先,你不能消除同形異義詞的發音,即有多個發音的單詞(例如下面的 a),其次,您無法檢查單詞是否在字典中(例如下面的 b)。

a. I refuse to collect the refuse around here. (r?|fju:z as verb vs. |refju:s as noun)

b. I am an activationist. (activationist: newly coined word which means n. A person who designs and implements programs of treatment or therapy that use recreation and activities to help people whose functional abilities are affected by illness or disability.

對於第一種字形的問題,許多同形異義詞可以用詞性來區分。但是,如果涉及字典中的字詞,我們應該使用知識與技能做出最佳猜測。 在這個項目中,我們採用了基於 TensorFlow 的深度學習 seq2seq 框架。

Github 鏈接:

https://github.com/Kyubyong/g2p


演算法

拼出阿拉伯數字和一些貨幣符號。(例如 $200 -> two hundred dollars)(這是從 Keith Ito 的代碼中借用的,https://github.com/keithito/tacotron/blob/master/text/numbers.py)

嘗試根據他們的 POS 檢索同形異義詞的正確發音

查找 CMU 發音字典的非同形異義詞

http://www.speech.cs.cmu.edu/cgi-bin/cmudict

對於 OOV,我們使用神經網路模型預測他們的發音


環境

python 2.x or 3.x


依賴

numpy >= 1.13.1

tensorflow >= 1.3.0

nltk >= 3.2.4

python -m nltk.downloader "averaged_perceptron_tagger" "cmudict"

inflect >= 0.3.1

Distance >= 0.1.3

future >= 0.16.0


安裝

pipinstallg2p_en

或者

pythonsetup.pyinstall

nltk 軟體包將在第一次運行時自動下載。

訓練

pythontrain.py


用法

fromg2p_enimportg2p

text ="I refuse to collect the refuse around here."

print(g2p(text))

>>>[u"AY1"," ",u"R",u"IH0",u"F",u"Y",u"UW1",u"Z"," ",u"T",u"UW1"," ",u"K",u"AH0",u"L",u"EH1",u"K",u"T"," ",u"DH",u"AH0"," ",u"R",u"EH1",u"F",u"Y",u"UW2",u"Z"," ",u"ER0",u"AW1",u"N",u"D"," ",u"HH",u"EH1",u"R"]

text ="I am an activationist."

print(g2p(text))

>>>[u"AY1",u"M"," ",u"AE1",u"N"," ",u"AE2",u"K",u"T",u"AH0",u"V",u"EY1",u"SH",u"AH0",u"N",u"IH0",u"S",u"T"]

如果需要轉換大量文本,則可以使用全局 tf 會話。

importg2p_enasg2p

withg2p.Session():

phs = [g2p.g2p(text)fortextintexts]

從Python入門-如何成為AI工程師

BAT資深演算法工程師獨家研發課程

最貼近生活與工作的好玩實操項目

班級管理助學搭配專業的助教答疑

學以致用拿offer,學完即推薦就業

新人福利

關注 AI 研習社(okweiwu),回復1領取

【超過 1000G 神經網路 / AI / 大數據資料】

從 Encoder 到 Decoder 實現 Seq2Seq 模型


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

加速 AI 2.0,ARC 推理挑戰賽等你來戰!
基於深度學習的目標檢測演算法綜述

TAG:AI研習社 |