エンベデッドシステムスペシャリスト 2019年 午後1 問02
高齢者を見守るためのロボットに関する次の記述を読んで、設問1〜3に答えよ。
B社は、一人暮らしの高齢者を見守る人型ロボット(以下、見守りロボットという)を開発している。見守りロボットの外観を図1に示す。

見守りロボットは、マイクを通して入力された利用者の音声を認識したり、頭、両手にあるタッチセンサ部1〜3(以下、タッチセンサという)で利用者が見守りロボットの体に触れたことを検出したりして、そのときの状況に応じた音声をスピーカから出力して、利用者との対話を行う。見守りロボットは、タッチセンサの操作回数及び音声の認識回数などの活動情報を参照して、利用者の活動状況をスマートフォンを介して電子メール(以下、メールという)で送信することができる。
〔見守りロボットのシステム構成〕
見守りロボットの構成を図2に、見守りロボットの主なシステム構成要素の機能概要を表1に示す。


〔制御部の対話処理の概要〕
(1) 割込み時刻に設定された起床時刻になると、“お目覚め状態”にし、利用者が設定した呼び方で、“○○ちゃん、おはよう、起きたー”と音声を再生して、現在の時刻以降で現在の時刻に最も近い時刻情報(以下、次の割込み時刻という)を設定する。
(2) お目覚め状態において、タッチセンサに触れられたことを検出すると、“○○ちゃん、お話しできるよ”と音声を再生し、利用者に対話ができることを案内する。
(3) お目覚め状態において、音声を認識すると、認識した音声と日付時刻から判断し、音声を再生する。例えば、6月の雨の多い時期の朝方に、“今日は、雨だよ”の音声を認識すると、“今日は、お散歩できないね”と音声を再生する。
(4) 音声を認識した結果において、確率値が10~30%である文節が1個以上あったとき、又は確率値の平均値が50%以下のときは、“もう一度言って”と音声を再生する。また、確率値が10%未満である文節が1個以上あったときは、“他の言葉で話してね”と音声を再生する。
(5) お目覚め状態において、“お出掛けするよ”の音声を認識すると、“○○ちゃん、いってらっしゃい”と音声を再生する。以降、タッチセンサに触れられなかった状況、音声を認識しなかった状況、設定開始・終了の設定スイッチが押されなかった状況、及び時刻が割込み時刻にならなかった状況(以下、事象発生無し状況という)が5分間継続したことを検出すると、割込み時刻を解除して、“お留守番状態”にする。
(6) お留守番状態において、タッチセンサに触れられたことを検出すると、お目覚め状態にし、次の割込み時刻を設定して、“○○ちゃん、おかえりー”と音声を再生する。
(7) 割込み時刻に設定された就寝時刻になると、“○○ちゃん、おやすみなさい”と音声を再生し、利用者の活動状況のメールを送信する。以降、事象発生無し状況が5分間継続したことを検出すると、次の割込み時刻を設定して、“お休み状態”にする。
(8) お休み状態において、タッチセンサに触れられたことを検出すると、お目覚め状態にし、“○○ちゃん、どうしたの”と音声を再生して、利用者に呼び掛ける。
〔制御部の設定処理の概要〕
(1) お目覚め状態において、設定開始・終了の設定スイッチが押されたことを検出すると、割込み時刻を解除し、“設定状態”にして、各項目の設定を開始する。
(2) 設定を開始すると、設定する項目順に音声案内を行いながら、進む、戻る又は決定の設定スイッチに従って、各項目の内容を設定し、不揮発性メモリに格納する。
なお、設定状態では、タッチセンサの操作、音声の入力は無効である。
(3) 設定状態において、設定開始・終了の設定スイッチが押されたことを検出すると、次の割込み時刻を設定して、お目覚め状態にする。
〔制御部の省エネ処理の概要〕
・お目覚め状態で事象発生無し状況が10分間継続したことを検出したとき、お留守番状態になったとき、又はお休み状態になったときに、MCUを省エネモードにする。
・Bluetoothモジュールへの電力は必要なときだけ供給し、音声認識再生モジュールへの電力はMCUが省エネモードでないときだけ供給する。
〔制御部のソフトウェア構成〕
制御部では、リアルタイムOSを使用する。制御部の主なタスク構成を図3に、制御部の主なタスクの処理概要を表2に示す。
設問1:見守りロボットの仕様について、(1)~(3)に答えよ。
設問1(1)
問題文を見る制御部の省エネ処理について、(a)、(b)に答えよ。
(a) お目覚め状態において、お留守番状態又はお休み状態にならずに、省エネモードになる場合がある。どのような場合か。25字以内で述べよ。
(b) MCUが省エネモードのとき、この省エネモードが解除される割込みは三つある。二つは時刻が割込み時刻になったときの割込みとタッチセンサに触れられたときの割込みである。残り一つの割込みを25字以内で述べよ。
模範解答
(a):事象発生無し状況が10分間継続した場合
(b):設定スイッチが押されたときの割込み
解説
解答の導き方
(a)
まず、省エネ処理の条件を確認します。問題文には、お目覚め状態で「事象発生無し状況が10分間継続したことを検出したとき」にMCUを省エネモードにするとあります。
まず、省エネ処理の条件を確認します。問題文には、お目覚め状態で「事象発生無し状況が10分間継続したことを検出したとき」にMCUを省エネモードにするとあります。
この条件は、お留守番状態やお休み状態への移行とは別に設けられています。したがって、お目覚め状態のまま、事象発生無し状況が10分間続いた場合が該当します。
(b)
MCUは「入力ポートに変化があったとき」に割込みを発生させます。また、タッチセンサ部と設定スイッチ部はいずれもMCUの入力ポートに接続されています。
MCUは「入力ポートに変化があったとき」に割込みを発生させます。また、タッチセンサ部と設定スイッチ部はいずれもMCUの入力ポートに接続されています。
設問では、割込み時刻になったときと、タッチセンサに触れられたときの割込みが示されています。これらと同じく入力ポートの変化で発生するものとして、設定スイッチが押されたときの割込みが残りの一つです。
誤りやすいポイント
- お留守番状態やお休み状態への移行条件にある「5分間」と、省エネモードになる条件の「10分間」を混同しないようにします。
- (a)は状態が変わる条件ではなく、お目覚め状態のまま省エネモードになる条件を問うています。
- (b)では、タッチセンサだけでなく、設定スイッチもMCUの入力ポートに接続されている点に注目します。
FAQ
Q: お目覚め状態で事象発生無し状況が5分間続いた場合も、省エネモードになりますか?
A: 省エネ処理の条件として示されているのは10分間です。5分間の条件は、お留守番状態やお休み状態への移行処理に関するものです。
A: 省エネ処理の条件として示されているのは10分間です。5分間の条件は、お留守番状態やお休み状態への移行処理に関するものです。
Q: 設定スイッチが押されたときも、入力ポートの変化による割込みになるのはなぜですか?
A: 設定スイッチ部がMCUの入力ポートに接続されているためです。スイッチが押されると入力ポートの状態が変化します。
A: 設定スイッチ部がMCUの入力ポートに接続されているためです。スイッチが押されると入力ポートの状態が変化します。
Q: MCUが省エネモードのとき、シリアル通信の完了割込みも発生しますか?
A: MCUはシリアルI/Fで送受信を完了したときにも割込みを発生します。ただし、この設問で残りの一つとして問われているのは、設定スイッチが押されたときの割込みです。
A: MCUはシリアルI/Fで送受信を完了したときにも割込みを発生します。ただし、この設問で残りの一つとして問われているのは、設定スイッチが押されたときの割込みです。
関連キーワード: 省エネモード、割込み、入力ポート、RTC、状態遷移
設問1(2)
問題文を見るマイクから入力された音声の処理に関する次の記述中のa~dに入れる適切な字句、又は数値を答えよ。ここで、bは、小数第1位を四捨五入して、整数で求めよ。
MCUは音声認識再生モジュールから、6個の文節から成る音声を認識した結果を受信した。このとき、1個目の文節の確率値は60%であり、2個目以降は順に32%、45%、35%、43%、55%であった。制御部は、aがb%でc%以下なので、“d”と音声を再生する。
模範解答
a:確率値の平均値
b:45
c:50
d:もう一度言って
解説
解答の導き方
まず、音声認識再生モジュールが認識した6個の文節について、それぞれの確率値の平均を求めます。本文では、確率値の平均値を「文節ごとの確率値の和を、文節の個数で割った値」としています。
確率値の合計は、
です。文節は6個なので、平均値は、
となります。設問では小数第1位を四捨五入して整数で求めますが、今回は計算結果がすでに整数なので、そのまま45%です。したがって、[a]には確率値の平均値、[b]には45が入ります。
次に、制御部の対話処理の条件を確認します。本文では、確率値が10~30%である文節が1個以上ある場合、または確率値の平均値が50%以下の場合に、「もう一度言って」と再生するとしています。
今回、確率値の平均値は45%であり、50%以下です。この条件に該当するため、[c]には50が入り、[d]には「もう一度言って」が入ります。なお、個々の確率値に10%未満のものはないため、「他の言葉で話してね」を選ぶ条件には該当しません。
誤りやすいポイント
- 確率値の平均を求めるとき、6個の文節のうち一部だけを使わないようにします。認識結果に含まれる全ての文節の確率値を合計し、文節数で割ります。
- 個々の確率値の条件と、確率値の平均値の条件を混同しないようにします。今回は平均値が50%以下であることが、「もう一度言って」を選ぶ根拠です。
- 「他の言葉で話してね」は、確率値が10%未満の文節が1個以上ある場合の音声です。平均値が低いだけでは、この音声を選ぶ条件になりません。
FAQ
Q: 確率値の平均値は、文節ごとの確率値を単純に平均するのですか?
A: はい。文節ごとの確率値を合計し、文節の個数で割ります。
A: はい。文節ごとの確率値を合計し、文節の個数で割ります。
Q: 今回、確率値が10~30%の文節がなくても「もう一度言って」になるのはなぜですか?
A: 「確率値が10~30%である文節が1個以上ある」ことと「確率値の平均値が50%以下である」ことは、どちらか一方を満たせばよい条件だからです。今回は平均値の条件を満たしています。
A: 「確率値が10~30%である文節が1個以上ある」ことと「確率値の平均値が50%以下である」ことは、どちらか一方を満たせばよい条件だからです。今回は平均値の条件を満たしています。
Q: 確率値の平均値が50%以下なら、必ず「他の言葉で話してね」になるのですか?
A: いいえ。「他の言葉で話してね」は、確率値が10%未満の文節が1個以上ある場合に再生されます。
A: いいえ。「他の言葉で話してね」は、確率値が10%未満の文節が1個以上ある場合に再生されます。
関連キーワード: 音声認識、文節、確率値、平均値、条件判定
設問1(3)
問題文を見るお留守番状態において、タッチセンサに触れられて省エネモードを解除し、お目覚め状態にしたとき、“○○ちゃん、おかえりー”と音声を再生する前に行う処理が二つある。一つは次の割込み時刻の設定である。もう一つの処理を25字以内で述べよ。
模範解答
音声認識再生モジュールへの電力の供給
解説
解答の導き方
-
お留守番状態では、省エネ処理によってMCUが省エネモードになります。本文には、お留守番状態になったときにMCUを省エネモードにするとあります。
-
タッチセンサに触れられると、省エネモードが解除され、お目覚め状態になります。続いて「次の割込み時刻を設定して、“○○ちゃん、おかえりー”と音声を再生する」とあります。したがって、音声を再生する前に必要な処理を考えます。
-
省エネ処理には、「音声認識再生モジュールへの電力はMCUが省エネモードでないときだけ供給する」とあります。省エネモード中は音声認識再生モジュールへの電力が供給されていないため、起動後にあいさつを再生するには、同モジュールへの電力供給が必要です。次の割込み時刻の設定とは別に行う処理は、音声認識再生モジュールへの電力の供給です。
誤りやすいポイント
- MCUの省エネモードが解除されることと、音声認識再生モジュールに電力が供給されることを、同じ処理だと考えないようにします。本文では、モジュールへの電力供給は別に制御されています。
- タッチセンサに触れたことを検出した後の処理として、次の割込み時刻の設定だけに注目しないようにします。音声再生には、その前に音声認識再生モジュールを使える状態にする必要があります。
- Bluetoothモジュールへの電力供給と混同しないようにします。この場面で必要なのは、あいさつの音声再生に使うモジュールへの電力供給です。
FAQ
Q: タッチセンサに触れると、省エネモードが解除されるだけで音声を再生できますか。
A: いいえ。MCUの省エネモード解除に加えて、音声認識再生モジュールにも電力を供給する必要があります。
A: いいえ。MCUの省エネモード解除に加えて、音声認識再生モジュールにも電力を供給する必要があります。
Q: 次の割込み時刻を設定する処理は、音声再生に必要な電力供給の代わりになりますか。
A: なりません。割込み時刻の設定はRTCの制御であり、音声再生モジュールへの電力供給とは別の処理です。
A: なりません。割込み時刻の設定はRTCの制御であり、音声再生モジュールへの電力供給とは別の処理です。
関連キーワード: 省エネモード、割込み、電力制御、音声再生、状態遷移
設問2:制御部のソフトウェアについて、(1)~(4)に答えよ。
設問2(1)
問題文を見る模範解答
①:再生音声選択
②:メイン
③:割込み時刻判定
解説
解答の導き方
問われているのは、設定処理で保存した「項目設定情報」を読み出して利用するタスクです。まず、図3で項目設定タスクから「項目設定情報」へ破線の矢印が伸びています。図3の注記では、破線はメモリへの書込みを表し、読出しは省略されています。したがって、読み出すタスクは、保存された設定内容を自分の処理で使うタスクの役割から判断します。
「メイン」タスクは、次の割込み時刻の設定を行います。問題文では、起床時刻や食事などの時刻情報を設定し、それらを時刻順に使用すると説明されています。次の割込み時刻を決めるには、この時刻情報が必要です。
「割込み時刻判定」タスクは、RTCの割込み時に「時刻情報の内容を判定してメインタスクに通知」します。割込みが起きた時刻が起床時刻や就寝時刻などのどれに当たるかを判定するため、保存された時刻情報を利用します。
「再生音声選択」タスクは、メインタスクから受けた情報を基に、再生する音声を選びます。利用者が設定した呼び方を音声に含めるため、設定された利用者情報を読み出して使うと考えられます。
このほか、問題文に示されているとおり、登録されたスマートフォンに関する情報を使う「スマフォ」タスクも読み出すタスクです。以上から、スマフォタスク以外の三つは「再生音声選択」「メイン」「割込み時刻判定」です。
誤りやすいポイント
- 図3の破線矢印はメモリへの書込みを表します。タスク間の通知を示す実線矢印と混同しないようにします。
- 「項目設定」タスクは設定内容を保存する側です。設問が尋ねているのは、その情報を読み出して利用するタスクです。
- 「メイン」だけでなく、時刻情報の判定を担当する「割込み時刻判定」も、時刻情報を利用する役割から読み出し先と判断できます。
FAQ
Q: 図3に項目設定情報を読み出す矢印が描かれていないのはなぜですか?
A: 図3の注記では、破線はメモリへの書込みを示し、メモリからの読出しは省略されています。読み出すタスクは、それぞれの処理内容から判断します。
A: 図3の注記では、破線はメモリへの書込みを示し、メモリからの読出しは省略されています。読み出すタスクは、それぞれの処理内容から判断します。
Q: 「項目設定」タスクも読み出すタスクに含まれますか?
A: この設問では、設定情報を保存するタスクではなく、保存された情報を利用するタスクを答えます。「項目設定」タスクは項目設定情報を不揮発性メモリに格納する役割です。
A: この設問では、設定情報を保存するタスクではなく、保存された情報を利用するタスクを答えます。「項目設定」タスクは項目設定情報を不揮発性メモリに格納する役割です。
Q: 「割込み時刻判定」タスクが項目設定情報を使うのはなぜですか?
A: RTCの割込みが起きたとき、その時刻がどの時刻情報に対応するかを判定し、メインタスクに通知するためです。
A: RTCの割込みが起きたとき、その時刻がどの時刻情報に対応するかを判定し、メインタスクに通知するためです。
関連キーワード: 不揮発性メモリ、タスク間通信、リアルタイムOS、割込み制御、状態遷移
設問2(2)
問題文を見るメインタスクの設定処理に関する次の記述中のe~iに入れる適切な字句を答えよ。
メインタスクはお目覚め状態の場合、設定スイッチタスクから、eの設定スイッチが押されたことの通知を受けると、割込み時刻を解除し、設定状態にして、Bluetoothモジュールへの電力を供給し、さらに、省エネモードの解除を伴うときは、音声認識再生モジュールへの電力も供給する。その後、fタスクにgの通知を行う。メインタスクは、設定状態で、eの設定スイッチが押されたことの通知を受けると、fタスクにhの通知を行い、Bluetoothモジュールへの電力を遮断し、iして、お目覚め状態にする。
模範解答
e:設定開始・終了
f:項目設定
g:設定開始
h:設定終了
i:次の割込み時刻を設定
解説
解答の導き方
-
まず、設定処理の開始と終了で、どの状態からどの状態へ移るかを確認します。制御部の設定処理の概要では、お目覚め状態で「設定開始・終了の設定スイッチ」が押されると、割込み時刻を解除して設定状態にし、各項目の設定を開始するとあります。したがって、空欄eに入るのは、開始時にも終了時にも使われる「設定開始・終了」です。
-
次に、設定開始時にどのタスクへ何を通知するかを考えます。表2では、項目設定タスクはメインタスクから設定開始の通知を受けると、設定スイッチタスクから受けた情報に従って各項目を設定します。そのため、メインタスクが通知する相手は「項目設定」タスクで、通知内容は「設定開始」です。よって、空欄fは「項目設定」、空欄gは「設定開始」です。
-
設定終了時も、設定処理の概要にある状態遷移をたどります。設定状態で同じ設定スイッチが押されると、次の割込み時刻を設定して、お目覚め状態に戻ります。表2の項目設定タスクは、メインタスクから設定終了の通知を受けると設定を終了するので、空欄hは「設定終了」です。
-
最後に、終了時にメインタスクが行う処理を確認します。設定開始時に割込み時刻を解除しているため、設定を終えてお目覚め状態に戻る際には、次の割込み時刻を改めて設定する必要があります。したがって、空欄iは「次の割込み時刻を設定」です。Bluetoothモジュールへの電力を遮断することも、設定終了時に行う処理です。
誤りやすいポイント
- 設定開始時と終了時で別々のスイッチを使うと考えないようにします。どちらも「設定開始・終了」の設定スイッチで、押されたときの処理は現在の状態によって異なります。
- 設定開始の通知を設定スイッチタスクに送るのではありません。設定スイッチタスクから押されたスイッチの情報を受け取り、メインタスクが項目設定タスクへ設定開始・終了を通知します。
- 設定終了時の「次の割込み時刻を設定」は、項目設定タスクではなく、RTCを制御するメインタスクが行う処理です。
- 音声認識再生モジュールへの電力供給は、設定開始時に必ず行うわけではありません。省エネモードの解除を伴う場合に供給します。
FAQ
Q: 設定開始時に割込み時刻を解除するのはなぜですか。
A: 設定中に古い割込み時刻が到来して、時刻に応じた処理が始まるのを避けるためです。設定終了時には、次の割込み時刻を改めて設定します。
A: 設定中に古い割込み時刻が到来して、時刻に応じた処理が始まるのを避けるためです。設定終了時には、次の割込み時刻を改めて設定します。
Q: 設定開始・終了の通知を受けるタスクは、設定スイッチタスクですか。
A: いいえ。設定スイッチタスクは押されたスイッチを判定して関連するタスクに通知します。設定項目の処理を始めたり終えたりする通知を受けるのは、項目設定タスクです。
A: いいえ。設定スイッチタスクは押されたスイッチを判定して関連するタスクに通知します。設定項目の処理を始めたり終えたりする通知を受けるのは、項目設定タスクです。
Q: 設定終了時にBluetoothモジュールへの電力を遮断するのはなぜですか。
A: 設定状態で必要となる処理が終わるためです。設定処理の終了後は、必要のないモジュールへの電力を遮断し、省エネにつなげます。
A: 設定状態で必要となる処理が終わるためです。設定処理の終了後は、必要のないモジュールへの電力を遮断し、省エネにつなげます。
関連キーワード: 状態遷移、タスク間通信、割込み制御、省電力制御、リアルタイムOS
設問2(3)
問題文を見るメインタスクが、活動状況判定タスクに対して通知を行うのは、どのタスクからどのような内容の通知を受けたときか。45字以内で述べよ。
模範解答
割込み時刻判定タスクから、就寝時刻の割込み時刻になったことの通知を受けたとき
解説
解答の導き方
-
まず、活動状況判定タスクにメール作成を依頼するのはメインタスクです。表2には、メインタスクが「利用者の活動状況のメール作成依頼を活動状況判定タスクに通知する」とあります。
-
次に、その依頼をいつ行うかを対話処理の概要で確認します。(7)には、就寝時刻になると「利用者の活動状況のメールを送信する」とあります。したがって、活動状況判定タスクへの依頼は、就寝時刻になったときに行われます。
-
表2では、RTCに設定された割込み時刻になると割込み時刻判定タスクが起動し、「時刻情報の内容を判定してメインタスクに通知する」とあります。就寝時刻の到来をメインタスクに知らせるのは、このタスクです。
したがって、メインタスクが活動状況判定タスクに通知するのは、割込み時刻判定タスクから就寝時刻になったことの通知を受けたときです。
誤りやすいポイント
- 活動状況判定タスクが、就寝時刻になったことを直接検出すると考えないようにします。時刻情報を判定してメインタスクに通知するのは、割込み時刻判定タスクです。
- 音声を再生する処理と、活動状況のメールを作成する処理を混同しないようにします。メール作成依頼の通知先は活動状況判定タスクです。
- 「就寝時刻」という情報だけでなく、どのタスクから通知を受けるかも問われています。タスク名と通知内容の両方を答えます。
FAQ
Q: メインタスクは、就寝時刻になったことをどのように知りますか?
A: RTCの割込みを受けて起動した割込み時刻判定タスクが、時刻情報の内容を判定してメインタスクに通知します。
A: RTCの割込みを受けて起動した割込み時刻判定タスクが、時刻情報の内容を判定してメインタスクに通知します。
Q: 活動状況判定タスクは、就寝時刻を判定しますか?
A: いいえ。活動状況判定タスクは、メインタスクからメール作成依頼を受けて活動情報を参照し、メール内容を作成します。
A: いいえ。活動状況判定タスクは、メインタスクからメール作成依頼を受けて活動情報を参照し、メール内容を作成します。
関連キーワード: タスク間通信、割込み処理、イベント駆動処理、メール通知
設問2(4)
問題文を見る表2中の再生音声選択タスクにおいて、下線①の入力された音声とは、どのような内容の音声か。15字以内で述べよ。
模範解答
お出掛けするよ
解説
解答の導き方
-
下線①が問うのは、マイクから入力された音声のうち、認識した結果によって見守りロボットの状態を変える必要が生じる音声です。再生音声選択タスクが選ぶ「再生する音声」ではなく、利用者が話した音声に注目します。
-
対話処理の概要(5)には、お目覚め状態で「お出掛けするよ」の音声を認識すると、「○○ちゃん、いってらっしゃい」と再生するとあります。その後、事象発生無し状況が5分間継続すると、お留守番状態になります。
-
したがって、状態の遷移につながる入力音声は「お出掛けするよ」です。「○○ちゃん、いってらっしゃい」は、その入力を受けてロボットが再生する音声なので、入力された音声とは区別します。
誤りやすいポイント
- ロボットが再生する「○○ちゃん、いってらっしゃい」を、利用者が入力した音声と取り違えないようにします。
- 「お出掛けするよ」の認識直後にお留守番状態へ移ると誤解しないようにします。本文では、その後に事象発生無し状況が5分間継続したときに、お留守番状態になります。
- 下線①の「状態の遷移が必要となるとき」は、音声再生の内容ではなく、入力された音声が状態遷移に関係する場合を指しています。
FAQ
Q: 「○○ちゃん、いってらっしゃい」はなぜ解答にならないのですか?
A: これは「お出掛けするよ」を認識した後に、見守りロボットが再生する応答だからです。設問は、利用者が入力した音声を尋ねています。
A: これは「お出掛けするよ」を認識した後に、見守りロボットが再生する応答だからです。設問は、利用者が入力した音声を尋ねています。
Q: 「お出掛けするよ」を認識した時点で、お留守番状態になりますか?
A: いいえ。認識後に応答音声を再生し、その後、事象発生無し状況が5分間継続したことを検出して、お留守番状態になります。
A: いいえ。認識後に応答音声を再生し、その後、事象発生無し状況が5分間継続したことを検出して、お留守番状態になります。
関連キーワード: 状態遷移、音声認識、イベント駆動処理、タスク間通信
設問3:制御部の機能追加について、(1)、(2)に答えよ。
利用者の音声に異常があると判断した場合、又は“○○ちゃん、どうしたの”の呼び掛けの音声を再生したときにタッチセンサの操作及び音声の入力が4分間なかった場合に、安否確認依頼のメールを送信する機能を追加することになった。利用者の音声を異常と判断するのは、確率値が10%未満である文節が0個で、かつ、確率値の平均値が20%以下の音声の入力が3回連続あったときとした。
ソフトウェアの変更方法を検討した結果、メインタスクを変更すると、メインタスクの複雑度が増してテスト項目が増加することが考えられたので、異常と判断する処理を行う新たなタスク(以下、異常検出タスクという)を追加し、メインタスク以外の既存のタスクを変更することにした。
異常検出タスクは、メインタスク以外の既存のタスクから必要な情報を受けて異常の有無を判断する。異常と判断すると安否確認依頼のメール内容を作成し、スマフォタスクにメールの送信依頼を通知する。
設問3(1)
問題文を見る変更する既存のタスクは三つある。二つは音声認識判定タスクと再生音声選択タスクである。もう一つのタスク名を表2中のタスク名で答えよ。
模範解答
タッチセンサ
解説
解答の導き方
この機能では、「○○ちゃん、どうしたの」の音声を再生した後、タッチセンサの操作と音声の入力が4分間なかったかを確認します。音声に関する情報は、音声認識判定タスクや再生音声選択タスクから異常検出タスクへ渡せますが、タッチセンサの操作については、その検出を担当するタスクから情報を渡す必要があります。
表2には、タッチセンサタスクについて「タッチセンサに触れられたことをメインタスクに通知する」とあります。今回の変更ではメインタスクを変更しないため、タッチ操作の有無を異常検出タスクが把握できるよう、タッチセンサタスクを変更します。
したがって、音声認識判定タスクと再生音声選択タスクに加えて変更するタスクは、表2中の「タッチセンサ」です。
誤りやすいポイント
- 音声の入力が関係する機能なので、音声関連のタスクだけを変更すればよいと考えないようにします。タッチ操作の有無も判定材料になるため、その情報を検出するタスクも必要です。
- メインタスクは変更しないという条件があります。メインタスクがタッチセンサの通知を受けてから異常検出タスクへ転送する、という変更は条件に合いません。
- 設定スイッチタスクと混同しないようにします。判定対象は設定スイッチの操作ではなく、タッチセンサの操作です。
FAQ
Q: なぜタッチセンサタスクから情報を渡す必要があるのですか?
A: タッチ操作を検出するのはタッチセンサタスクだからです。操作があったことを異常検出タスクに伝えられなければ、操作のない時間を判断できません。
A: タッチ操作を検出するのはタッチセンサタスクだからです。操作があったことを異常検出タスクに伝えられなければ、操作のない時間を判断できません。
Q: メインタスクを変更して情報を異常検出タスクへ渡す方法ではいけないのですか?
A: 問題文では、メインタスクの複雑度やテスト項目の増加を避けるため、メインタスク以外の既存タスクを変更するとしています。
A: 問題文では、メインタスクの複雑度やテスト項目の増加を避けるため、メインタスク以外の既存タスクを変更するとしています。
関連キーワード: イベント駆動処理、タスク間通信、タイムアウト監視、状態監視
設問3(2)
問題文を見る音声認識判定タスク、及び再生音声選択タスクの変更内容に関する次の記述中のj~mに入れる適切な字句を答えよ。
音声認識判定タスクは、jをkタスクに通知する場合、同じ内容をlタスクに通知する。再生音声選択タスクは、再生する音声の内容がmの場合はlタスクに通知する。
模範解答
j:音声認識結果
k:メイン
ℓ:異常検出
m:呼び掛け
解説
解答の導き方
この設問では、新たに追加する異常検出タスクが判定に必要な情報を受け取れるよう、既存タスクからどの情報を通知するかを考えます。
まず、音声認識判定タスクの役割を確認します。表2には、音声認識判定タスクが、音声の情報に確率値の平均値などを加えた「音声認識結果」をメインタスクに通知するとあります。異常検出タスクは、確率値の平均値や確率値が10%未満の文節数を使って異常の有無を判断するため、この音声認識結果が必要です。
したがって、音声認識判定タスクは、音声認識結果をメインタスクに通知するとき、同じ内容を異常検出タスクにも通知します。これにより、[j]は「音声認識結果」、[k]は「メイン」、[l]は「異常検出」と分かります。
次に、再生音声選択タスクから異常検出タスクへ通知する情報を考えます。追加機能では、「○○ちゃん、どうしたの」の呼び掛けの音声を再生した後、タッチセンサの操作及び音声の入力が4分間なかった場合にも、安否確認依頼のメールを送信します。そのため異常検出タスクには、この呼び掛けの音声を再生したことを知る必要があります。
よって、再生音声選択タスクは、再生する音声の内容が「呼び掛け」の場合に異常検出タスクへ通知します。[m]は「呼び掛け」です。
誤りやすいポイント
- 音声認識判定タスクから通知する情報を、認識した文節IDだけと考えないようにします。表2では、確率値の平均値などを追加した「音声認識結果」を通知するとされています。
- 異常検出タスクへの通知は、メインタスクへの通知の代わりではありません。同じ音声認識結果を、メインタスクと異常検出タスクの両方に通知します。
- 再生音声選択タスクからは、すべての再生音声を通知するのではありません。追加機能の条件に関係する「呼び掛け」の再生を知らせます。
FAQ
Q: 音声認識結果を異常検出タスクにも通知するのはなぜですか?
A: 異常検出タスクが、確率値の平均値などから利用者の音声に異常があるかを判断するためです。
A: 異常検出タスクが、確率値の平均値などから利用者の音声に異常があるかを判断するためです。
Q: 「呼び掛け」の再生を通知するのはなぜですか?
A: 呼び掛けの後に一定時間、タッチセンサの操作及び音声の入力がなかったかを調べる条件が追加されているためです。
A: 呼び掛けの後に一定時間、タッチセンサの操作及び音声の入力がなかったかを調べる条件が追加されているためです。
Q: 既存のタスクから異常検出タスクへ通知する情報は、どのように判断すればよいですか?
A: 追加機能の判定条件を読み、条件の確認に必要な情報や出来事を既存タスクが把握する箇所から通知します。
A: 追加機能の判定条件を読み、条件の確認に必要な情報や出来事を既存タスクが把握する箇所から通知します。
関連キーワード: タスク間通信、メールボックス、イベント通知、状態遷移、リアルタイムOS





