次に、本発明を適用した実施の形態について図面を参照して説明する。以下の実施形態では、音声出力装置を携帯電話機に搭載し、料理のレシピを音声出力する場合を例に説明する。まず、図1及び図2を参照して、携帯電話機の構成について説明する。図1は、携帯電話機1の外観図である。図2は、携帯電話機1の電気的構成を示すブロック図である。図3は、RAM22の構成を示す模式図である。図4は、不揮発メモリ30の構成を示す模式図である。図5は、音声種類データベース301の構成を示す模式図である。
図1に示すように、携帯電話機1には、表示画面2と、テン・キー入力部3と、ジョグポインタ4と、通話開始ボタン5と、通話終了ボタン6と、マイク7と、スピーカー8と、機能選択ボタン9,10と、アンテナ12(図2参照)とが設けられている。尚、テン・キー入力部3、ジョグポインタ4、通話開始ボタン5、通話終了ボタン6、機能選択ボタン9,10によりキー入力部38(図2参照)が構成される。
また、図2に示すように、携帯電話機1には、マイク7からの音声信号の増幅及びスピーカー8から出力する音声の増幅等を行うアナログフロントエンド36と、アナログフロントエンド36で増幅された音声信号のデジタル信号化及びモデム34から受け取ったデジタル信号をアナログフロントエンド36で増幅できるようにアナログ信号化する音声コーディック部35と、変復調を行うモデム部34と、アンテナ12から受信した電波の増幅及び検波を行い、また、キャリア信号をモデム34から受け取った信号により変調し、増幅する送受信部33が設けられている。
さらに、携帯電話機1には、携帯電話機1全体の制御を行う制御部20が設けられ、制御部20には、CPU21と、データを一時的に記憶するRAM22と、時計機能部23とが内蔵されている。また、制御部20には、文字等を入力するキー入力部38と、表示画面2と、プログラムやデータを記憶した不揮発メモリ30と、着信音を発生するメロディ発生器32が接続されている。メロディ発生器32には、メロディ発生器32で発生した着信音を発声するスピーカ37が接続されている。
次に、図3に示すように、RAM22には、主菜のレシピを読上げるときの音声の種類を記憶するための主菜音声種類記憶エリア221,副菜のレシピを読上げるときの音声の種類を記憶するための副菜音声種類記憶エリア222,デザートのレシピを読上げるときの音声の種類を記憶するためのデザート音声種類記憶エリア223,主菜の作業が予定時間を超過している場合に読上音声をどのように変化させるかを記憶するための主菜音声変更方法記憶エリア224,副菜の作業が予定時間を超過している場合に読上音声をどのように変化させるかを記憶するための副菜音声変更方法記憶エリア225,デザートの作業が予定時間を超過している場合に読上音声をどのように変化させるかを記憶するためのデザート音声変更方法記憶エリア226,レシピ内の作り方とは別に用意されたワンポイントアドバイスを読上げるときの音声の種類を記憶するためのワンポイントアドバイス音声種類記憶エリア227,ワンポイントアドバイスを読上げるときの音声の高さを記憶するためのワンポイントアドバイス音声高さ記憶エリア228,ワンポイントアドバイスを読上げるときの音声の速さを記憶するためのワンポイントアドバイス音声速さ記憶エリア229,選択された主菜のレシピを一時的に記憶しておくための主菜レシピ記憶エリア230,選択された副菜のレシピを一時的に記憶しておくための副菜レシピ記憶エリア231,選択されたデザートのレシピを一時的に記憶しておくためのデザートレシピ記憶エリア232,複数の料理からキーワードにより抽出される工程を記憶するための前処理工程記憶エリア233,前処理工程を統合した後の工程の順序を記憶するための工程順序記憶エリア234,予定作業時間に合わせた各工程のBGMを記憶するためのBGM記憶エリア235,現在読上中のレシピテキストを記憶するための読上中レシピ記憶エリア236,音声合成処理で生成された合成音声を記憶するための合成音声記憶エリア237等の記憶エリアが用意されている。
次に、図4に示すように、不揮発メモリ30には、音声合成プログラム等の種々のプログラムを記憶したプログラム記憶エリア300,レシピを読上げるための音声の種類を記憶した音声種類データベース301,様々な料理のレシピテキストを記憶したレシピデータベース302,工程予定時間に合わせたBGMを複数記憶したBGMデータベース303,前処理工程を抽出するためのキーワードを記憶したキーワードデータベース304,レシピテキストから合成音声を生成するための言語解析に使用される言語辞書305,合成音声生成時に使用される音声単位データを記憶した音声単位データベース306等が記憶されている。なお、レシピデータベース302が本発明の指示情報記憶手段に、音声単位データベース306が本発明の音声データ記憶手段に相当する。
次に、図5に示すように、不揮発メモリ30の音声種類データベース301は、種類を示す番号311と、その番号に対応する音声の種類312からなっている。音声の種類としては、例えば、キャラクター声、男性アナウンサー、老人、女性アナウンサー、関西の女性声、ロボットのような声、子どもの声などが用意されており、レシピの読上げに使用する声の種類を操作者が選択できるようになっている。
次に、以上の構成の携帯電話機1において実行される音声出力処理について図6〜図21を参照して説明する。図6は、音声出力処理のメインルーチンのフローチャートである。図7は、図6のS7で実行する設定処理のサブルーチンのフローチャートである。図8は、図7のS21で実行する音声種類決定処理のサブルーチンのフローチャートである。図9は、図7のS23で実行する音声変更方法決定処理のサブルーチンのフローチャートである。図10は、図7のS25で実行するその他の音声設定処理のサブルーチンのフローチャートである。図11は、図6のS11で実行する読上処理のサブルーチンのフローチャートである。図12は、図11のS91で実行するレシピ選択処理のサブルーチンのフローチャートである。図13は、図11のS93で実行する工程統合処理のサブルーチンのフローチャートである。図14は、図11のS95で実行するレシピ読上処理のサブルーチンのフローチャートである。図15は、図14のS161で実行する工程読上処理のサブルーチンのフローチャートである。図16は、初期画面の説明図である。図17は、音声種類設定画面の説明図である。図18は、音声変更方法設定画面の説明図である。図19は、その他の音声設定処理画面の説明図である。図20は、レシピ選択画面の説明図である。図21は、読上実行画面の説明図である。
まず、音声出力処理が開始されると、音声の種類、高さ、変更方法などの設定値を不揮発メモリ30に記憶されている既定値に戻す初期設定処理を実行する(S1)。次に、表示制御プログラムに信号を送出して、図16に示すような初期画面を表示画面2に表示させる(S3)。この初期画面では、表示画面2の中に、レシピの読上げボタン101、設定ボタン102、終了ボタン103が選択可能に構成されている。次に、設定ボタン102が押されたか否かを判断する(S5)。設定ボタン102が押された場合には(S5:YES)、読上音声の種類などを設定する設定処理を実行し(S7)、終了後S3に戻る。設定処理の詳細は図7〜図10を参照して後述する。
設定ボタンが押されていない場合には(S5:NO)、レシピ読上ボタン101が押されたか否かを判断する(S9)。レシピ読上ボタン101が押された場合には(S9:YES)、選択された料理のレシピを順に読上げる読上処理を実行し(S11)、終了後S3に戻る。読上処理の詳細は図11〜図15を参照して後述する。
レシピ読上ボタン101が押されていない場合には(S9:NO)、終了ボタン103が押されたか否かを判断する(S13)。終了ボタン103が押されていない場合には(S13:NO)、S3に戻って初期画面の表示を継続する。終了ボタン103が押された場合には(S13:YES)、音声出力処理プログラムの実行を終了する。
次に、図7を参照して、図6のS7で実行する設定処理について説明する。設定処理では、レシピを読上げる音声の種類を決定する音声種類決定処理(S21)、作業の進行が遅れた場合に、次の工程においてどのように音声を変更するかを決定する音声変更方法決定処理(S23)、ワンポイントアドバイスや材料の読上音声を設定するその他の音声設定処理(S25)を順に実行し、図6のメインルーチンに戻る。上記の音声種類決定処理の詳細は図8を参照して、音声変更方法決定処理の詳細は図9を参照して、その他の音声設定処理の詳細は図10を参照して後述する。
次に、図8を参照して、図7のS21で実行する音声種類決定処理について説明する。本実施形態では、主菜、副菜、デザートの3種類の料理を順に実行する作業について音声出力を行なうこととしている。そこで、音声種類決定処理では、各々の料理の種類についてどのような音声を用いてレシピなどの読上げを行なうかを決定する。具体的には、例えば、図17に示すような音声種類設定画面を表示して、音声の選択を促す。この音声種類設定画面では、表示画面2の中に、各料理毎の音声種類が選択できるコンボボックス111〜113、音声選択を決定して次画面に移行するための次へボタン114、初期画面に戻るための戻るボタン115が選択可能に構成されている。コンボボックス111〜113は、それぞれカーソルキーを移動させることにより複数種類の候補の中から選択が可能となっている。各コンボボックス111〜113には、図5に示す音声種類データベース301から音声種類が読み込まれ、選択候補として表示される。
音声種類決定処理が開始されると、まず、主菜の音声種類がコンボボックス111に入力されたか否かを判断する(S31)。主菜の音声種類が入力された場合には(S31:YES)、その入力された内容をRAM22の主菜音声種類記憶エリア221に記憶し(S33)、S31に戻る。主菜の音声種類が入力されていない場合には(S31:NO)、次に、副菜の音声種類がコンボボックス112に入力されたか否かを判断する(S35)。
副菜の音声種類が入力された場合には(S35:YES)、その入力された内容をRAM22の副菜音声種類記憶エリア222に記憶し(S37)、S31に戻る。副菜の音声種類が入力されていない場合には(S35:NO)、次に、デザートの音声種類がコンボボックス113に入力されたか否かを判断する(S39)。
デザートの音声種類が入力された場合には(S39:YES)、その入力された内容をRAM22のデザート音声種類記憶エリア223に記憶し(S41)、S31に戻る。デザートの音声種類が入力されていない場合には(S39:NO)、次に、次へボタン114が入力されたか否かを判断する(S43)。
次へボタン114が押された場合は(S43:YES)、全ての音声種類が決定されたと判断するので、図7の設定処理のルーチンに戻る。なお、コンボボックス111〜113には、予め既定値の音声種類が表示されている。また、RAMの主菜音声種類記憶エリア221、副菜音声種類記憶エリア222、デザート音声種類記憶エリア223にも初期設定処理(図6:S1)において既定値が記憶されているので、何も入力がなかった場合には、既定値がそのまま用いられることになる。次へボタン114が押されていない場合には(S43:NO)、戻るボタン115の入力があるか否かを判断する(S45)。戻るボタンが押された場合には(S45:YES)、設定処理を行なわないと判断して、図7のルーチンからさらに図6のS3に戻り、初期画面を表示する。戻るボタン115の入力がされなかった場合には(S45:NO)、S31に戻る。
尚、以上説明した音声種類決定処理では、料理の種類について音声を指定したが、これをさらに詳細にして工程毎に音声の種類を変えるように構成してもよい。このようにすると、工程の変化が音声の種類ですぐに認識できるようになり、作業の進行状況がわかりやすくなる。また、音声の種類に代えて、工程毎に声色や声の高さを変えるようにしてもよい。この場合には、後述する音声変更処理で使用しない変更方法を用いて工程毎の変化を表現するようにすると好適である。
次に、図9を参照して、図7のS23で実行する音声変更方法決定処理について説明する。本実施形態では、料理の各工程の終了が予定時刻より遅れている場合には、通常の読上音声を変更することにより操作者にすぐ分かるように構成している。読上音声の変更方法としては、本実施形態では、各料理ごとに、声の種類を変える、声色を変える、声の高さを変える、声の速さを変えるの4つのうちから1つの方法を選択可能としている。この音声変更方法の設定は、例えば、図18に示すような音声変更方法設定画面を表示して行なう。この音声変更方法設定画面では、表示画面2の中に、声の種類を変える、声色を変える、声の高さを変える、声の速さを変えるの4つの中から主菜、副菜、デザートのそれぞれについて選択するためのラジオボタン121〜123、音声変更方法を決定して次画面に移行するための次へボタン124、前画面である音声種類設定画面に戻るための戻るボタン125が選択可能に構成されている。このような音声変更方法設定画面を用いて、作業が遅れた場合に次の工程のレシピ読み上げをどのように音声を変化させるかをここで設定できる。
まず、主菜の音声変更方法が入力されたか否かを判断する(S51)。主菜の音声変更方法が入力された場合には(S51:YES)、その入力された内容をRAM22の主菜音声変更方法記憶エリア224に記憶し(S53)、S51に戻る。主菜の音声変更方法が入力されていない場合には(S51:NO)、次に、副菜の音声変更方法が入力されたか否かを判断する(S55)。
副菜の音声変更方法が入力された場合には(S55:YES)、その入力された内容をRAM22の副菜音声変更方法記憶エリア225に記憶し(S57)、S51に戻る。副菜の音声変更方法が入力されていない場合には(S55:NO)、次に、デザートの音声変更方法が入力されたか否かを判断する(S59)。
デザートの音声変更方法が入力された場合には(S59:YES)、その入力された内容をRAM22のデザート音声変更方法記憶エリア226に記憶し(S61)、S51に戻る。デザートの音声変更方法が入力されていない場合には(S59:NO)、次に、次へボタン124が入力されたか否かを判断する(S63)。
次へボタン124が押された場合は(S63:YES)、全ての音声変更方法が決定されたと判断するので、図7の設定処理のルーチンに戻る。なお、ラジオボタン121〜123は、予め既定値の音声変更方法がONとなるように表示されている。また、RAMの主菜音声変更方法記憶エリア224、副菜音声変更方法記憶エリア225、デザート音声変更方法記憶エリア226にも初期設定処理(図6:S1)において既定値が記憶されているので、何も入力がなかった場合には、既定値がそのまま用いられることになる。次へボタン124が押されていない場合には(S63:NO)、戻るボタン125の入力があるか否かを判断する(S65)。戻るボタンが押された場合には(S65:YES)、図7のルーチンのS21に戻り、音声種類設定画面を表示する。戻るボタン115の入力がされなかった場合には(S65:NO)、S51に戻る。
次に、図10を参照して、図7のS25で実行するその他の音声設定処理について説明する。本実施形態では、料理の作業手順を音声で出力するほか、ワンポイントアドバイスや材料の読み上げなども行なうように想定している。このような音声ガイドは、通常の作業手順と同じ音声を使用すると混乱を招くおそれもあるので、ここで個別に設定できるようにしたものである。この設定は、例えば図19に示すようなその他の音声設定処理画面を表示して行なう。この音声設定処理画面では、表示画面2の中に、ワンポイントアドバイスと材料の読上について、音声の種類、声の高さ、声の速さを設定するためのコンボボックス131〜136,設定を終了して初期画面に戻るための終了ボタン137,前画面である音声変更方法設定画面に戻るための戻るボタン138が選択可能に構成されている。
ワンポイントアドバイスに関する音声設定処理について説明すると、まず、ワンポイントアドバイスの音声種類がコンボボックス131に入力されたか否かを判断する(S71)。音声種類の入力がされた場合には(S71:YES)、その入力内容をRAM22のワンポイントアドバイス音声種類記憶エリア227に記憶し(S73)、S71に戻る。
ワンポイントアドバイスの音声種類の入力がされていない場合には(S71:NO)、次に、ワンポイントアドバイスの音声高さがコンボボックス132に入力されたか否かを判断する(S75)。ここでは、音声の高さは「高−中−低」の3段階で設定可能とする。音声高さが入力された場合には(S75:YES)、その入力内容をRAM22のワンポイントアドバイス音声高さ記憶エリア228に記憶し(S77)、S71に戻る。
ワンポイントアドバイスの音声高さが入力がされていない場合には(S75:NO)、次に、ワンポイントアドバイスの音声速さがコンボボックス133に入力されたか否かを判断する(S79)。ここでは、音声の速さは「ゆっくり−普通−速い」の3段階で設定可能とする。音声速さが入力された場合には(S79:YES)、その入力内容をRAM22のワンポイントアドバイス音声速さ記憶エリア229に記憶し(S81)、S71に戻る。ワンポイントアドバイスの音声速さが入力がされていない場合には、次に、次へボタン137が入力されたか否かを判断する(S83)。
終了ボタン137が押された場合は(S83:YES)、全ての音声設定が完了したと判断するので、図7の設定処理のルーチンに戻る。なお、ワンポイントアドバイスに関する音声設定のためのコンボボックス131〜133には、予め既定値の音声種類・高さ・速さが表示されている。また、RAM22のワンポイントアドバイス音声種類記憶エリア227、ワンポイントアドバイス音声高さ記憶エリア228、ワンポイントアドバイス音声速さ記憶エリア229にも初期設定処理(図6:S1)において既定値が記憶されているので、何も入力がなかった場合には、既定値がそのまま用いられることになる。終了ボタン137が押されていない場合には(S83:NO)、戻るボタン138の入力があるか否かを判断する(S85)。戻るボタン138が押された場合には(S85:YES)、図7のルーチンのS23に戻り、音声変更方法設定画面を表示する。戻るボタン138の入力がされなかった場合には(S85:NO)、S71に戻る。材料の読上についても同様の処理で設定することができる。
次に、図6のS11で実行する読上処理について、図11を参照して説明する。読上処理では、まず作りたい料理のレシピを主菜、副菜、デザートのジャンル毎に1つずつ選択し、選択されたレシピの中から共通する工程がある場合にはそれを取りだして全ての工程の前に配置し、主菜から順にレシピを読上げていく。そして、読上げていく中で、予定の時間を超えた場合には予め設定した方法で音声を変更することによって操作者に時間の到来を知らせるようにしている。
図11に示すように、読上処理では、まず、ジャンル毎のレシピを選択するレシピ選択処理を行ない(S91)、次いで、選択したレシピの中から共通する工程を取り出して統合する工程統合処理を行なう(S93)。そして、操作者の開始指示に従って、順にレシピを読上げ(S95)、料理が終了するまで(S97:NO)レシピを読上げを繰り返す(S97:YES、S95)。上記のレシピ選択処理は図12を参照して、工程統合処理は図13を参照して、レシピ読上処理は図14及び図15を参照して後述する。
次に、図12及び図20を参照して、図11のS91で行なうレシピ選択処理について説明する。レシピ選択処理では、図20に示すようなレシピ選択画面が表示画面2に表示され、主菜、副菜、デザートのそれぞれについて1つずつ料理レシピを選択するためのコンボボックス141〜143、実際のレシピの読上げを開始するための読上スタートボタン144,初期画面に戻るための戻るボタン145が選択可能に構成されている。コンボボックス141〜143で選択の候補となるレシピは、不揮発メモリ30のレシピデータベース302に記憶されている。また、携帯電話機1を接続して、ネットワーク上からレシピデータをダウンロードするように構成してもよい。
まず、主菜の料理名がコンボボックス141に入力されたか否かを判断する(S101)。主菜の料理名が入力された場合には(S101:YES)、その入力された料理名に対応するレシピのテキストデータをレシピデータベース302から呼び出してRAM22の主菜レシピ記憶エリア221に記憶し(S103)、S101に戻る。主菜の料理名が入力されていない場合には(S101:NO)、次に、副菜の料理名がコンボボックス142に入力されたか否かを判断する(S105)。
副菜の料理名が入力された場合には(S105:YES)、その入力された料理名に対応するレシピのテキストデータをレシピデータベース302から呼び出してRAM22の副菜レシピ記憶エリア222に記憶し(S107)、S101に戻る。副菜の料理名が入力されていない場合には(S105:NO)、次に、デザートの料理名がコンボボックス143に入力されたか否かを判断する(S109)。
デザートの料理名が入力された場合には(S109:YES)、その入力された料理名に対応するレシピのテキストデータをレシピデータベース302から呼び出してRAM22のデザートレシピ記憶エリア223に記憶し(S111)、S101に戻る。デザートの料理名が入力されていない場合には(S109:NO)、次に、読上スタートボタン144が入力されたか否かを判断する(S113)。
読上スタートボタン144が押された場合は(S113:YES)、全てのレシピが決定されたと判断するので、図11の読上処理のルーチンに戻る。尚、ここで主菜・副菜・デザートの全てについてレシピが選択される必要はなく、いずれか1つや2つについて選択されているだけであってもよい。
読上スタートボタン144が押されていない場合には(S113:NO)、戻るボタン145の入力があるか否かを判断する(S115)。戻るボタンが押された場合には(S115:YES)、設定処理を行なわないと判断して、図11のルーチンからさらに図6のS4に戻り、初期画面を表示する。戻るボタン145の入力がされなかった場合には(S115:NO)、S101に戻る。
次に、図13を参照して、図11のS93で実行する工程統合処理について説明する。まず、レシピ選択処理(図12)で選択され、RAMの記憶エリア230〜232に記憶したレシピテキストを読み出す(S121)。そして、周知の方法で読み出したレシピテキストを形態素解析する(S123)。
次に、キーワードデータベース304に記憶されているキーワードを用いて、形態素解析されたレシピテキスト内のキーワードが存在する工程を前処理対象工程として抽出し、RAM22の前工程記憶エリア233に記憶する(S125)。キーワードデータベース304には、「洗う」、「切る」等の共通の工程に対応するような語句が記憶されているので、各レシピから抽出された工程を前処理として全ての工程の前に置けば、効率よく作業をこなすことができる。
次に、S125で前処理対象工程が複数個抽出されたか否かを判断する(S127)。前処理対象工程がまったく抽出されていない、もしくは、1つしか抽出されていなければ(S127:NO)、統合する必要がないので、そのままS133に進む。
前処理対象工程が複数抽出された場合には(S127:YES)、抽出された複数の工程を1つの工程に統合し(S129)、元のレシピテキスト内の抽出済工程を削除する(S131)。そして、レシピを読上げる工程の順序を設定する(S133)。ここでは、前処理工程→主菜の工程1〜最終工程→副菜の工程1〜最終工程→デザートの工程1〜最終工程の順に工程順序が設定される。そして、設定後の工程順序をRAM22の工程順序記憶エリア234に記憶し(S135)、図11の読上処理のルーチンに戻る。
次に、図14を参照して、図11のS95で実行するレシピ読上処理について説明する。このレシピ読上処理では、各工程にかかる作業時間の予定(予定工程時間)を算出し、その工程用のBGMを決定してから実際の読上を実行する。
まず、レシピ選択処理(図12)でRAM22に記憶され、工程統合処理(図13)で修正されている読上対象の各レシピテキストを読み込む(S141)。次に、各工程にかかる作業時間である予定工程時間を算出する(S143)。作業時間は、レシピテキストに例えば「10分煮込む」など、具体的な時間の記載があれば、それを作業時間として取り込む。具体的な時間の記載がなければ、既定値として例えば5分の作業時間を設定する。この作業時間は、操作者が変更できるように構成してもよい。
次に、算出した予定工程時間に合致する再生時間を有するBGMをBGMデータベース303から選択し、RAM22のBGM記憶エリア235にその工程に対応させて記憶する(S145)。そして、全行程について予定時間の算出とBGMの決定が終了したか否かを判断する(S147)。まだ未処理の工程が残っている場合には(S147:NO)、S143に戻って処理を繰り返す。全行程について終了した場合には(S147:YES)、算出された各工程の予定時間を順に累計して各行程についてその工程までの累積予定作業時間を算出する(S149)。たとえば、第1の工程が10分で次の工程が5分であれば、第2工程までの累積時間は15分である。
次に、初めのレシピを読上げる音声(初期音声)の設定を行なう(S151)。これは、設定処理(図6:S7)で設定され、RAM22に記憶済の値に従って設定される。そして、作業時間を計時するためにタイマーを開始する(S153)。
次に、実際のレシピ読上処理に移行するが、まず、読上対象となる工程が最終工程か否かを判断する(S155)。最終工程であれば(S155:YES)、最終工程であることがすぐにわかるように、読上音声を変更する音声変更処理を行なう(S157)。変更方法としては、音声の種類を変えたり、声色を変えたり、高さや速さを変えたりすることができる。この最終工程用の音声変更方法も、音声変更設定画面で操作者が設定できるように構成しておいてもよい。音声変更処理後、S159に進む。
最終工程でなければ(S155:NO)、その読上対象工程のBGMをRAM22のBGM記憶エリア235から取り出し、BGMデータベース303から音楽データを読み込んで再生を開始する(S159)。次に、実際のレシピテキストを読上げる工程読上処理を行なう(S161)。工程読上処理の詳細については図15を参照して後述する。1つの工程の読上が終了したら、全ての工程について読上が終了したか否かを判断し(S163)、全行程が終了するまで(S163:NO)、S155〜S161の処理を繰り返す。全行程が終了したら(S163:YES)、図11の読上処理のルーチンに戻る。
次に、図15及び図21を参照して、図14のS161で実行する工程読上処理について説明する。工程読上処理が開始された時点で、表示画面2は図21に示すような読上実行画面となり、料理名151、当該工程のレシピテキストが表示されるレシピボックス152、操作者がその作業が終了したときに押すための次へボタン153,何らかの理由でレシピの読上げを中止するための中止ボタン154が用意されている。工程読上処理が開始されると、読上対象工程のレシピテキストを読み込む(S171)。そして、読み込んだレシピテキストを言語辞書305を用いて周知の方法で言語解析して、アクセントやポーズ付の読み文字列とする(S173)。次に、得られた読み文字列に音声単位データベース306に記憶されている音声単位データを適用してピッチや音量を計算し、合成音声信号を出力する音声合成処理を行なう(S175)。ここで適用される音声データは、既に設定済の音声種類・速さ・高さ・声色等が適用される。
全ての読み文字列について合成音声処理が終了したら、合成音声信号を音声コーディック部35、アナログフロントエンド36を経由してスピーカー8からアナログ音声として出力させる(S177)。続いて終了信号を検出したか否かを判断し(S179)、終了信号が検出されるまで(S179:NO)、合成音声の出力を継続する。終了信号は、次へボタン153を操作者が押すことによって入力される。次へボタン153にかぎらず、操作者が音声で「次」などと入力するのを認識するように構成してもよい。終了信号を検出したら(S179:YES)、再生中のBGMを停止する(S181)。
次に、現在時刻、すなわち終了信号の入力時刻を時計機能部23から取得する(S183)。そして、実行中の料理の開始時刻から現在時刻までの経過時間が、先に計算した予定累積時間(図14:S149)を超過しているか否かを判断する(S185)。予定累積時間を超過していれば(S185:YES)、さらに、その工程自体にかかった時間が予定時間を超過しているか否かを判断し(S187)、工程予定時間自体を超過している場合には(S187:YES)、設定された方法に従って、例えば、声を高くする、速くする等、次の工程で使用する音声データの変更処理を行なう(S189)。工程予定時間自体は超過していない場合には(S187:NO)、以前の工程で遅れが発生したために累積時間が超過していると考えられ、既にその時点で音声変更処理が行なわれているので、今回はなにも変更処理を行なわず、そのまま図14のルーチンに戻る。
予定累積時間を超過していなければ(S185:NO)、音声設定を初期値に戻す(S191)。そして図14のルーチンに戻る。
ここで、以上説明した図13〜図15の処理について、図22及び図23に示す具体的なレシピを例に説明する。図22は主菜のレシピテキスト321の例を示す説明図である。図23は、副菜のレシピテキスト322の例を示す説明図である。図22及び図23に示すように、レシピテキスト321,322は、料理名、材料、作り方から構成され、作り方は1から順に番号が付けられている。この番号に続く作り方が1つの工程に該当する。
この具体例では、主菜に「鶏肉とインゲンのココナッツミルクカレー」のレシピを選択し、副菜に「ポパイサラダ」を選択して、デザートはなしで料理を開始する場合を想定している。また、初期音声は、主菜がキャラクター声、副菜が女性アナウンサー声、声の変更方法は、「声の高さを変える」であり、最終工程に入ったら声色を変えるように設定されているものとする。
まず、図13に示すように、図22及び図23のレシピテキスト321及び322を読み出し(S121)、それぞれのレシピテキストを形態素解析する(S123)。そして、キーワードデータベース304に記憶されているキーワード「切る」により前処理対象工程を抽出する(S125)。この処理の結果、レシピ321から工程1〜3が、レシピ322から工程1,2が取り出される。
次に、前処理対象工程が複数あるか否かを判断し(S127)、取り出された工程が5個あるので(S127:YES)、これらの工程を統合して1つの工程、例えば工程0とする(S129)。そして、統合された工程を元のレシピから削除する(S131)。次に、工程の順序を設定する(S133)。ここでは、前工程である工程0(レシピ321の工程1〜工程3及びレシピ322の工程1及び工程2を統合)、工程1−1(レシピ321の工程4)、工程1−2(レシピ321の工程5)、工程1−3(レシピ321の工程6)、工程1−4(レシピ321の工程7)、工程1−5(レシピ321の工程8)、工程2−1(レシピ322の工程3)、工程2−2(レシピ322の工程4)、工程2−3(レシピ322の工程5)、工程2−5(レシピ322の工程6)、工程2−6(レシピ322の工程7)の順序が設定される。そして、このように設定した順序を記憶する(S135)。
次に、図14に示すように、まず最初の料理のレシピテキストを読み込む(S141)。初回のルーチンでは、工程0に設定された前処理工程が読み込まれる。次に、予定工程時間を算出する(S143)。ここでは、特に時間の記載はないので、統合前の各工程にかかる時間を5分と考えて、5工程が統合されているので、25分を予定工程時間とする。
次に、25分間の再生時間を有するBGMをBGMデータベース303から選択する(S145)。次に、対象料理の全行程が終了したか否かを判断するが(S147)、前工程は全ての料理の前に行なうものであるから、1料理1工程で終了の扱いとなる。従って、全行程終了と判断され(S147:YES)、次に、全行程の予定累積時間を算出する(S149)。工程数が1個であるから、累積時間も25分となる。次に、初期音声の設定を行なう(S151)。前処理工程の音声に関する設定値は、主菜の音声の設定値と同じものに設定される。ただし、特にこれに限定されるものではなく、既に設定されている主菜や副菜、デザートとは異なるように設定されるようにしても良い。
次に、タイマーを開始し(S153)、工程は1つだけなので、最終工程での音声変更は行なわないから(S155:NO)、選択したBGMを開始し(S159)、前処理工程(工程0)の読上に移行する(S161)。
次に、図15に示すように、前処理工程のレシピテキストを読上げる。まず、前処理工程(工程0)のレシピテキストを読み込み(S171)、これを言語解析処理の上(S173)、音声合成処理して(S175)出力を開始し(S177)、操作者からの終了信号を検出するまで(S179)継続する。終了信号を検出したら(S179:YES)、BGMを停止し(S181)、現在時刻を取得して(S183)、予定累積時間を超過したか否かを判断する(S185)。ここでは、予定時間内で終了信号が入力された場合を想定し(S185:NO)、音声設定値を初期値にして(S191)、図14のルーチンに戻り、前処理工程としての全行程が終了したので(S163:YES)、図11のルーチンに戻る。
図11において、まだ最後の料理ではないので(S97:YES)、再び図14のサブルーチンに移行する。そして、次に、主菜であるレシピテキスト321のレシピデータを読み込む。先の工程統合処理において主菜レシピは工程4〜工程8のみになっている。ここで、各工程の予定工程時間を算出する(S143)。工程4,5,7,8ではレシピテキスト321中に時間の記載がないので、それぞれ予定工程時間を5分とし、5分間の再生時間を有するBGMをBGMデータベース303から選択する(S145)。また、工程6には「15分」という記載があるので、この時間をこの工程の予定工程時間とする。全行程について予定工程時間の算出が終了したら(S147:YES)、予定累積時間を算出する(S149)。従って、工程4の予定累積時間は5分、工程5では10分、工程6は25分、工程7は30分、工程8は35分となる。次に、主菜の音声設定に従って、初期音声を設定する(S151)。
次に、タイマーを開始し(S153)、まだ最終工程ではないから(S155:NO)、選択したBGMを開始し(S159)、工程4(工程1−1)の読上処理に移行する(S161)。
次に、図15に示すように、当該工程のレシピテキストを読上げる。まず、工程4のレシピテキストを読み込み(S171)、これを言語解析処理の上(S173)、音声合成処理して(S175)出力を開始し(S177)、操作者からの終了信号を検出するまで(S179)継続する。終了信号を検出したら(S179:YES)BGMを停止し(S181)、現在時刻を取得して(S183)、予定累積時間を超過したか否かを判断する(S185)。ここでは、予定時間内で終了信号が入力された場合を想定し(S185:NO)、音声設定値を初期値にして(S191)、図14のルーチンに戻る。
図14に戻って、まだ全行程終了していないので(S163:NO)、S155に戻り、読上対象工程を次の工程である工程5(工程1−2)に移行する。この工程はまだ最終工程ではないから(S155:NO)、選択したBGMを開始し(S159)、工程5(工程1−2)の読上処理に移行する(S161)。
次に、図15に示すように、当該工程のレシピテキストを読上げる。まず、工程5のレシピテキストを読み込み(S171)、これを言語解析処理の上(S173)、音声合成処理して(S175)出力を開始し(S177)、操作者からの終了信号を検出するまで(S179)継続する。終了信号を検出したら(S179:YES)、BGMを停止し(S181)、現在時刻を取得して(S183)、予定累積時間を超過したか否かを判断する(S185)。ここでは、当該工程の予定時間を超えたために(S187:YES)予定累積時間も超過してしまった(S185:YES)と仮定する。従って、声の高さを1段階高くするように変更する(S189)。そして、図14のルーチンに戻る。
図14に戻って、まだ全行程終了していないので(S163:NO)、S155に戻り、読上対象工程を次の工程である工程5(工程1−2)に移行する。この工程はまだ最終工程ではないから(S155:NO)、選択したBGMを開始し(S159)、工程5(工程1−2)の読上処理に移行する(S161)。
次に、図15に示すように、当該工程のレシピテキストを読上げる。まず、工程5のレシピテキストを読み込み(S171)、これを言語解析処理の上(S173)、音声合成処理して(S175)出力を開始し(S177)、操作者からの終了信号を検出するまで(S179)継続する。終了信号を検出したら(S179:YES)BGMを停止し(S181)、現在時刻を取得して(S183)、予定累積時間を超過したか否かを判断する(S185)。ここでは、予定累積時間は、前工程からの引き続きであるために超過しているが(S185:YES)、当該工程予定時間は超過していない(S187:NO)と仮定する。従って、声の高さは前回のままにして変更を行なわず、図14のルーチンに戻る。
図14に戻って、まだ全行程終了していないので(S163:NO)、S155に戻り、読上対象工程を次の工程である工程6(工程1−3)に移行する。この工程はまだ最終工程ではないから(S155:NO)、選択したBGMを開始し(S159)、工程6(工程1−3)の読上処理に移行する(S161)。
次に、図15に示すように、当該工程のレシピテキストを読上げる。まず、工程6のレシピテキストを読み込み(S171)、これを言語解析処理の上(S173)、音声合成処理して(S175)出力を開始し(S177)、操作者からの終了信号を検出するまで(S179)継続する。終了信号を検出したら(S179:YES)BGMを停止し(S181)、現在時刻を取得して(S183)、予定累積時間を超過したか否かを判断する(S185)。ここでは、予定累積時間内で作業が終了せず(S185:YES)。当該工程の予定時間も超えた(S187:YES)と仮定する。従って、現状の音声設定値からさらにもう1段階声の高さをを高くするように変更する(S189)。そして、図14のルーチンに戻る。
図14に戻って、まだ全行程終了していないので(S163:NO)、S155に戻り、読上対象工程を次の工程である工程7(工程1−4)に移行する。この工程はまだ最終工程ではないから(S155:NO)、選択したBGMを開始し(S159)、工程7(工程1−3)の読上処理に移行する(S161)。
次に、図15に示すように、当該工程のレシピテキストを読上げる。まず、工程7のレシピテキストを読み込み(S171)、これを言語解析処理の上(S173)、音声合成処理して(S175)出力を開始し(S177)、操作者からの終了信号を検出するまで(S179)継続する。終了信号を検出したら(S179:YES)BGMを停止し(S181)、現在時刻を取得して(S183)、予定累積時間を超過したか否かを判断する(S185)。ここでは、予定累積時間内で作業が終了したと想定する(S185:NO)。従って、音声設定値を初期値に戻し(S191)、図14のルーチンに戻る。
図14に戻って、まだ全行程終了していないので(S163:NO)、S155に戻り、読上対象工程を次の工程である工程8(工程1−5)に移行する。この工程は最終工程であるから(S155:YES)、最終工程であることを示す音声に変更する(S157)。ここでは、声色を優しげな声に変更する。そして、選択したBGMを開始し(S159)、工程8(工程1−5)の読上処理に移行する(S161)。
次に、図15に示すように、当該工程のレシピテキストを読上げる。まず、工程8のレシピテキストを読み込み(S171)、これを言語解析処理の上(S173)、音声合成処理して(S175)出力を開始し(S177)、操作者からの終了信号を検出するまで(S179)継続する。終了信号を検出したら(S179:YES)BGMを停止し(S181)、現在時刻を取得して(S183)、予定累積時間を超過したか否かを判断する(S185)。ここでは、予定累積時間内で作業が終了したと想定する(S185:NO)。従って、音声設定値を初期値に戻し(S191)、図14のルーチンに戻る。そして、全ての工程が終了したので(S163:YES)、図11のルーチンに戻る。そして、次の料理である副菜のレシピ読上処理に移行する。副菜のレシピ読上処理については、以上述べた主菜の場合と同様に進行するので、説明を省略する。
以上説明したように、本実施形態の携帯電話機1によれば、あらかじめレシピの読上げに使用する音声の種類や変更方法を設定しておき、操作者は、選択したレシピに示された各工程毎にレシピを読上げさせながら料理作業を進め、その工程の作業が終了すれば、次へボタンを押す等により、工程の終了を入力する。各工程には予定作業時間が設定されているので、その予定時間を超過しても作業の終了が入力されない場合には、予定よりも作業が遅れていることを示すために、予め設定された方法により、次の工程のレシピの読上げ音声を変更する。操作者は、音声が変化したことにより、計時しなくても作業の遅れを認識し、作業スピードを上げるなどの対応を取ることができる。また、最終工程では、それまでの工程とは異なる声色になるなど、読上音声が変更されるので、作業の終了が近づいていることをその工程の当初から知ることができる。また、複数の料理を作る場合には、レシピを形態素解析してキーワードによる検索を実行することにより、共通の工程を前処理工程として先に実行するようにしたので、作業を効率的に進めることができる。
尚、上記実施の形態において、図11のフローチャートのS91及び図12のフローチャートにおいてレシピ選択処理を実行するCPU21が本発明の作業選択手段として機能する。また、図7のフローチャートのS21及び図8のフローチャートにおいて音声種類決定処理を実行するCPU21が本発明の音声データ選択手段として機能する。また、図15のフローチャートのS175で音声合成処理を実行するCPU21が本発明の音声合成手段として機能する。また、図14のフローチャートのS143において予定工程時間算出処理を実行するCPU21が本発明の実施時間設定手段として機能する。図15のフローチャートのS177において音声出力処理を実行するCPU21が本発明の音声出力手段として機能する。また、図15のフローチャートのS189において音声変更処理を実行するCPU21が本発明の音声データ変更手段として機能する。また、図14のフローチャートのS145においてBGMを決定するCPU21が本発明のBGM選択手段として、S159においてBGM開始処理を実行するCPU21が本発明のBGM再生手段として機能する。また、図13のフローチャートのS125において前処理対象工程抽出処理を実行するCPU21が本発明の抽出手段として、S129で前処理対象工程統合処理を実行するCPU21が本発明の統合配置手段として機能する。
尚、上記実施の形態では、最終工程のみにおいて作業の完了が近いことを知らせる音声変更処理を行なったが、最終工程の1つ乃至2つ手前の工程から最終工程までを最終段階の工程として扱うようにしてもよい。