👄

GodotでOS標準の読み上げ機能を使って無駄に喋らせる

に公開2

Godot Engineで‥‥‥表題の通りです。

さっそくコード

func _ready() -> void:
    var voices:PackedStringArray = DisplayServer.tts_get_voices_for_language("ja")
    var voice_id:String = voices[0]
    var speach_text:String = "ゲームを開始します。"
    DisplayServer.tts_speak(speach_text, voice_id)

当然ですが、毎フレーム呼ぶようなことはしたらだめです。

止めたいときは‥‥‥

DisplayServer.tts_stop()

とすると止まります。
読み上げが終わっても止まると思います。

⚠️注意

  • スペック次第でtts_speaktts_stopを呼び出す際に遅延が発生しますので、そのつもりで使う事
  • Windowsだと割と快適に動作しますが、他のOSはわかりません。

活用法

視覚障害の方に向けてのスクリーンリーダーに利用できると思いますが、個人開発では大変ですよね。
ただ、仕込むのはめっちゃ楽ですので、使ってみても良いと思います。

無暗にウチのあの子をしゃべらせてみたりとかできます。無機質に喋ります。

楽しいGodot Lifeを🎉

Discussion

tkmfujisetkmfujise

Windowsだと割と快適に動作しますが、他のOSはわかりません。

macOS でも動きましたよ。