自前で text-to-speech したい場合, テキスト(transcript)の前処理が必要になるケースがあります.
英語を想定します.
たとえば 42
-> forty-two
など(こういうのを全体的に何と呼ぶのかはわかっておりませんが, keithito tacotron では cleaner という呼び方をしていますね)
keithito's tacotron の text/clearner.py
が参考になります.
既存の tts サービスなどはこのあたりを対応していますね.
数字の展開
Python ですと inflect
ライブラリがあります(keithito tacotron も inflect を呼んでいる)
短縮形の展開
Dr.
-> doctor
など. いくつかは keithito tacotron で自前でやっています.
You've
-> You have
など. contractions
ライブラリがあります.
その他参考になりそうなもの
spaCy で全部よろしくやってくれるかしら? https://spacy.io/
突き詰めると NLP の世界になってきますね.
TODO
- spelling correction
- 数式を word に展開したい(
1/3
->one over three
など) - C++ で実装されたのほしい