クムクムロボットは簡単な文章であれば発話をすることができます。
これは、クムクムロボットの基板に「音声合成LSI」が搭載されており、この音声合成LSIを使って指定した文字を音声に変換し、発話をさせています。
ただし、この音声合成LSIは単語辞書などは持っていませんので、漢字を読むことができません。
したがって、指定する文章は基本的にはローマ字の文字列で表現することになります。
発話させるプログラムを作成するために必要な情報
VS CodeでPythonプログラムのプロジェクトやソースファイルを作成する方法については「5. VS CodeによるPythonプログラムの開発」を確認してください。
Pythonプログラムから直接QumcCommLib.dllを呼び出す場合は、「3.Qumcum PythonライブラリでコントロールできるAPI仕様(QumCommLib.dll呼出し)」にある音声合成LSI(発話)
発話するときの速さを設定する”qumcomm_voice_speed()”と
発話するときの速さを設定する”qumcomm_voice()”を確認してください。
Pythonプログラムからqumcum.pyを経由して呼び出す場合は、「2.Qumcum PythonライブラリでコントロールできるAPI仕様」にある音声合成LSI(発話)
発話するときの速さを設定する”qumcum.voice_speed()”と
発話するときの速さを設定する”qumcum.voice()”を確認してください。
クムクムロボットと接続する方法についての説明は、「4.クムクムロボットとの接続~LEDの点灯」を参考にしてください。
クムクムロボットに発話をさせる言葉の書き方の詳細については、音声合成LSIのほうで公開されている「ローマ字音声記号列仕様書」を参考にしてください。
Pythonプログラムから直接QumcCommLib.dllを呼び出す
コード全体はこのようになります。
※ここで、QumcCommLib.dllはこれから作成し、実行するPythonプログラムのコードと同じフォルダに置いていることを前提としています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import os import time from ctypes import * # DLLのフォルダにカレントディレクトリを追加します os.add_dll_directory(os.getcwd()) # DLLをロードします dll = cdll.QumCommLib # COMポートの番号文字列を生成 port = c_char_p('COM5'.encode('utf-8')) # Qumcumと接続 h = dll.qumcomm_connect(port, 115200) print("qumcomm_connect error=" + str(dll.qumcomm_get_lasterror())) print("qumcomm_connect handle=" + str(h)) # # 発話スピード変更 dll.qumcomm_voice_speed(h, 80); # 発話 words = c_char_p('ohayo--gozaima---su.'.encode('utf-8')) dll.qumcomm_voice(h, words); #time.sleep(0.2) # Qumcumから切断 dll.qumcomm_end(h) err = dll.qumcomm_get_lasterror() print("qumcomm_end error=" + str(err)) |
このコードの21行目にある”dll.qumcomm_voice_speed(h, 80)”は発話をするときの速さを設定する処理となります。
50-300までの範囲で設定が可能で、50にするとゆっくり、300にすると早口でしゃべります。
23行目と24行目で発話する文字列を作成して発話を実行しています。
23行目の処理は、24行目のqumcomm_voice()に渡す文字列が「(C言語の)文字列のポインタ」でなければならないのでここで生成した文字列を「(C言語の)文字列のポインタ」に変換しています。
そして、23行目で用意した文字列をqumcomm_voice()で発話処理を呼び出しています。
このプログラムでは「おはよーございまーーす」と発話させています。
Pythonプログラムからqumcum.pyを経由して呼び出す
コード全体はこのようになります。
※ここで、QumcCommLib.dllとqumcum.pyはこれから作成し、実行するPythonプログラムのコードと同じフォルダに置いていることを前提としています。
1 2 3 4 5 6 7 8 9 10 11 12 |
import qumcum # Qumcumと接続 qumcum.connect("COM5") # 発話スピード変更 qumcum.voice_speed(80); # 発話 qumcum.voice('ohayo--gozaima---su.'); # Qumcumから切断 qumcum.end() |
このコードの7行目にある”qumcum.voice_speed(h, 80)”は発話をするときの速さを設定する処理となります。
50-300までの範囲で設定が可能で、50にするとゆっくり、300にすると早口でしゃべります。
9行目で発話を実行しています。
このプログラムでは「おはよーございまーーす」と発話させています。