NarratorEngine

class NarratorEngine<EVENT, START_TYPE, KEY>(soundPlayer: SoundPlayer, resources: WavResources<START_TYPE>, eventToKey: (EVENT) -> KEY, defaultStartSoundType: START_TYPE, volumeFlow: ERROR CLASS: Symbol not found for Flow<kotlin/Int> = flowOf(100), startSoundTypeFlow: ERROR CLASS: Symbol not found for Flow<START_TYPE> = flowOf(defaultStartSoundType), startSoundEnabledStatesFlow: ERROR CLASS: Symbol not found for Flow<kotlin/collections/Map<KEY, kotlin/Boolean>> = flowOf(emptyMap()), customSpeak: suspend (EVENT, Int) -> Unit, isCustomSpeakEvent: (EVENT) -> Boolean = { false }, scope: ERROR CLASS: Symbol not found for CoroutineScope = CoroutineScope(Dispatchers.Default + SupervisorJob()))

開始音のWAV再生とカスタム読み上げ(OS標準TTS)を扱うエンジンの共通実装。

LMU / GT7 / ACE の各 narrator feature は、resources に開始音タイプ→WAVファイルパスのマップと 読み込み関数を渡す。読み上げ対象のイベントは isCustomSpeakEvent で判定し、customSpeak で本文を読み上げる。 本文のWAVはもう持たないため、isCustomSpeakEvent が false のイベントは再生対象外となる。 domain.engine.TextToSpeechEngine を実装する型(EVENT に SpeechEvent、START_TYPE に ReadoutStartSoundType、KEY に ReadoutItemKey を割り当てたもの)は、:core:domain に依存する 呼び出し側(各 narrator feature)が薄いアダプタとして用意する。core:narrator が :core:domain へ 依存しないようにするため、イベント・キー種別をすべて型パラメータ化している。

Constructors

Link copied to clipboard
constructor(soundPlayer: SoundPlayer, resources: WavResources<START_TYPE>, eventToKey: (EVENT) -> KEY, defaultStartSoundType: START_TYPE, volumeFlow: ERROR CLASS: Symbol not found for Flow<kotlin/Int> = flowOf(100), startSoundTypeFlow: ERROR CLASS: Symbol not found for Flow<START_TYPE> = flowOf(defaultStartSoundType), startSoundEnabledStatesFlow: ERROR CLASS: Symbol not found for Flow<kotlin/collections/Map<KEY, kotlin/Boolean>> = flowOf(emptyMap()), customSpeak: suspend (EVENT, Int) -> Unit, isCustomSpeakEvent: (EVENT) -> Boolean = { false }, scope: ERROR CLASS: Symbol not found for CoroutineScope = CoroutineScope(Dispatchers.Default + SupervisorJob()))

Properties

Link copied to clipboard

Functions

Link copied to clipboard
suspend fun playStartSoundForKey(key: KEY)

key に紐づく開始音(現在選択中の START_TYPE)を再生し、再生完了まで待つ。 WAV以外(OS標準TTS等)で本文を読み上げる前に、収録音声と同じ開始音を鳴らしたい場合に使う。 key の開始音が無効化されている場合、または開始音が読み込めていない場合は何もしない。

Link copied to clipboard
Link copied to clipboard
fun speak(event: EVENT, queue: Boolean = false)
Link copied to clipboard
fun stop()