German_transliterate是一個用於清潔和翻譯(IE歸一化)德語文本的python模塊,包括縮寫,數字,時間戳等。它可用於清潔雜亂的文本(例如,映射特徵性的Unicode編碼到ASCII)或與各種文本礦業挖掘任務結合使用文本中的常見依賴的文本。
但是,它對於文本到語音(TTS)預處理(無論是在訓練還是推理中)特別有用,並且具有支持結果的音調編碼(例如,ESPEAK-NG)之後作為處理管道的下一步。
IS已成功應用於與Mozilla TT一起進行預處理,並將其與espeak-ng音素一起作為訓練和推理管道的輸入數據。
這項工作是根據Creative Commons歸因4.0國際許可證獲得許可的。要查看此許可證的副本,請訪問http://creativecommons.org/licenses/4.0/或發送給Creative Commons,PO Box 1866,Mountain View,CA 94042,美國。
要提供歸因或引用此工作,請使用以下文本段:
german_transliterate, Copyright 2020 by repodiac, see https://github.com/repodiac for updates and further information
0.1.3各種操作中的一些錯誤文件: weekday , month , amount_money和首字母縮寫詞,也可以在這里和那裡修復一些次要的東西(強烈建議更新)0.1.2從默認操作列表中刪除了以下操作,因為(如下文檔中所述)它們是高度錯誤的(許多錯誤的persives)。您仍然可以通過明確將它們添加到transliterate_ops=[...]列表中。刪除的操作是:monthweekdaymath_symbol0.1.1添加了默認用法的命令行接口(沒有音素編碼和實驗內容)release 0.1該軟件的初始版本,仍然有很多ToDo和一些實驗功能(請參閱文檔);也可以改進例外處理它目前只有一個外部依賴項Num2words。目前,所有依賴項都可以在requirements.txt中找到,並且還包括在setup.py中。
使用pip和內置的git包裝安裝基於setup.py 。
pip install git+https://github.com/repodiac/german_transliterate設定:
pip軟件包(以防import german_transliterate.core使用virtualenv或conda創建虛擬環境)。在Python代碼或庫中:
from german_transliterate.core import GermanTransliterate
text = 'Um 13:15h kaufte Hr. Meier (Mitarbeiter der Firma ABC) 1.000 Luftballons für 250€.'
print('ORIGINAL:', text, 'n')
ops = {'acronym_phoneme', 'accent_peculiarity', 'amount_money', 'date', 'timestamp',
'weekday', 'month', 'time_of_day', 'ordinal', 'special', 'math_symbol', 'spoken_symbol'}
# use these setting for PHONEMIC ENCODINGS as input (e.g. with TTS)
print('TRANSLITERATION with phonemic encodings:',
GermanTransliterate(replace={';': ',', ':': ' '}, sep_abbreviation=' -- ').transliterate(text), 'n')
# use none or your own for other purposes than phonemic encoding and do not use 'spoken_symbol' or 'acronym_phoneme'
print('TRANSLITERATION (default):',
GermanTransliterate(transliterate_ops=list(ops-{'spoken_symbol', 'acronym_phoneme'})).transliterate(text), 'n')
來自命令行的新(在外殼中):
python core.py '1, 2, 3 - alles ist dabei'
當前只有一種方法要使用: transliterate('Das ist der Text.')
它具有以下輸入參數:
transliterate_ops關鍵字列表,請參閱下文有關詳細信息replace “原始:替換”字符串元素的dist用作文本的附加普通和簡單”替換,例如替換= {' - ':':''}將所有破折號替換為whitespace;將empty供正常使用, {';': ',', ':': ' '}用音素編碼sep_abbreviation一種用於縮寫音譯的特殊分離器;這主要僅適用於文本的音素編碼作為TTS管道中的下一步。將empty供正常使用和使用' -- '與音素編碼make_lowercase如果是true,則將文本進行小寫(默認為empty )注意:大多數音譯操作確實僅適用於make_lowercase=True這是由於僅使用小寫的各種詞典造成的。請僅在不過分使用時,請使用transliterate_ops make_lowercase=False ,否則大多數不起作用!用於配置參數transliterate_ops的參數如下:
acronym_phoneme像ABC這樣的縮寫縮寫為音調版本ah beh zeeaccent_peculiarity刪除了奇特的Unicode編碼並將其映射到兼容ASCII的版本(Cleaning OP)amount_money匯總貨幣和貨幣符號,例如$,€,歐元等。date音譯日期,例如12.10.2019timestamp音頻戳記,例如13H:15m:45sweekday (實驗),例如在工作日的縮寫, Mo目前這相當容易出錯(許多假啟示)month (實驗),縮寫幾個月,例如Jan或Dez目前相當容易出錯(許多假peTosives)time_of_day傾聽一天中的時間,例如13:15Hordinal音頻數字zweitem zweiten 2. zweitespecial音譯案例和特殊術語,例如8/10到acht von zehnmath_symbol (實驗),音譯少量數學符號,例如plus , minus等。spoken_symbol允許將括號或引文標記變成口語,例如'(text)'進入-- in klammern -- text -- (如果將sep_abbreviation設置為' - '),主要對TTS任務有用當前狀態主要基於使用手動映射和正則表達式來替換和擴展字符串(單詞或術語)。因此,當前的性能應該足夠好,可以與文本處理管道中的在線推理或“實時”使用一起使用。隨著時間的推移添加了更多的模塊或操作,可能會有相當緩慢的方法進行重型計算,因此主要適合訓練或離線處理。
請在GitHub上打開問題以獲取錯誤或功能請求。您也可以通過電子郵件與我聯繫。