German_transliterateは、略語、数字、タイムスタンプなどを含むドイツのテキストをクリーニングおよび音訳(すなわち正常化)するPythonモジュールです。たとえば、乱雑なテキスト(ASCIIへの特異なユニコードエンコーディングなど)をクリーニングするために使用できます。
ただし、テキストからスピーチ(TTS)の前処理(トレーニングと推論の両方)に特に役立ち、その後、パイプラインの次のステップとして結果の音素エンコード(ESPEAK-NGを使用する)をサポートする機能があります。
ISは、トレーニングパイプラインと推論パイプラインの両方への入力データとしてespeak-ng音素と組み合わせて、Mozilla TTSとの前処理に成功裏に適用されました。
この作業は、Creative Commons Attribution 4.0 Internationalライセンスの下でライセンスされています。このライセンスのコピーを表示するには、http://creativecommons.org/licenses/by/4.0/にアクセスするか、Creative Commons、PO Box 1866、Mountain View、CA 94042、USAに手紙を送信してください。
帰属を提供したり、この作業を引用したりするには、次のテキストスニペットを使用してください。
german_transliterate, Copyright 2020 by repodiac, see https://github.com/repodiac for updates and further information
0.1.3さまざまなOPSのいくつかのバグフィックス: weekday 、 month 、 amount_money 、頭字語、あちこちで固定された小さなもの(更新強くお勧めします)0.1.2デフォルトOPSのリストから次のOPSを削除しました。なぜなら(以下のドキュメントで述べたように)、非常にエラーが発生しやすい(多くの偽陽性)。それらを明示的にtransliterate_ops=[...]リストに明示的に追加することで使用できます。削除されたOPSは次のとおりです。monthweekdaymath_symbol0.1.1デフォルトの使用のためのコマンドラインインターフェイスが追加されました(音素エンコーディングと実験的なものが残されていません)release 0.1ソフトウェアの初期リリース、まだ多くのToDoといくつかの実験機能(ドキュメントを参照)。また、例外処理を改善することもできます現在、外部依存関係は1つだけです。Num2Words。すべての依存関係は、 requirements.txtにあり、現時点でもsetup.pyに含まれています。
setup.pyに基づいて、 pipと組み込みのgitパッケージインストールを使用してインストールを簡単に使用します:
pip install git+https://github.com/repodiac/german_transliterate設定:
pipパッケージと同じように、現在のPython環境にインストールして動作( 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'
現在、使用する方法は1つだけです。Rranriterate transliterate('Das ist der Text.')
次の入力パラメーターがあります。
transliterate_opsキーワードのリスト、詳細については以下を参照してくださいreplaceを、テキストに追加のプレーンでシンプルな「オンザフライ」置換として使用するものとして使用します。通常の使用のためにemptyままにして、 {';': ',', ':': ' '}を使用するために{ ';': '、'、 ':' '}sep_abbreviation略語の音訳に使用される特別な分離器。これは、TTSパイプラインの次のステップとして、テキストの音素エンコードでのみ有用です。通常の使用と使用のためにemptyしてください' -- '音素エンコーディングでmake_lowercase trueの場合、テキストは小文字になります(デフォルトでemptyしてください)注:音訳操作のほとんどはmake_lowercase=Trueでのみ動作します - これは、低ケースでのみ動作するさまざまな辞書によるものです。 make_lowercase=Falseを使用してくださいtransliterate_opsが過度に使用されていない場合にのみ、ほとんどの場合動作しません! configパラメーターtransliterate_opsに使用されるパラメーターは次のとおりです。
acronym_phoneme 、 ABCのような音素版のような略語を音声版ah beh zeeに翻訳するaccent_peculiarity独特のユニコードエンコーディングを削除し、それらを互換性のあるASCIIのようなバージョンにマッピングします(クリーニングOP)amount_money 、$、€、EURなどの通貨とお金のシンボルを音訳します。dateは日付、例:2019年12月10日timestampはタイムスタンプを翻訳します、例:13H:15m:45sweekday (実験的)、平日の略語、たとえばMoなど、現在、これはかなりエラーが発生しやすい(多くの偽陽性)month (実験)、数ヶ月間の音訳、例えばJanまたはDez -現在、これはむしろエラーが発生しやすい(多くの偽陽性)time_of_dayの音訳時間、例:13:15hordinal音声順序数、例: 2.へのzweite (正しいケースの接尾辞、すなわちzweiten 、またはzweitemトレードオフを見つけようとします)special音訳のエッジケースと特別な用語、例えば8/10へのacht von zehnへmath_symbol (実験的)、数学記号の少量の選択、例えばplus 、 minusなどを音訳します(ここでも適用されます:多くの偽陽性を持つことができるので、注意して使用してください)spoken_symbol 、音声ブラケットまたは引用マークを音声言語sep_abbreviationすることを可能にします-- in klammern -- text -- 現在の状態は、主に手動マッピングの使用と、文字列の置換と拡張のための正規表現(単語または用語)に基づいています。したがって、現在のパフォーマンスは、テキスト処理パイプラインでのオンライン推論または「リアルタイム」使用法で使用するのに十分でなければなりません。時間の経過とともにさらにモジュールまたはOPが追加されると、重い計算を行う方法もかなり遅いため、主にトレーニングまたはオフライン処理に適しています。
バグや機能のリクエストについては、GitHubで問題を開いてください。また、メールで私に連絡することもできます。