FOBI

FOBI

เล่นไฟล์เสียง

ในการพูดคุยกับผู้ใช้งานนั้นแน่นอนว่า FOBI จำเป็นต้องมีเสียงเพื่อให้สามารถมีปฏิสัมพันธ์กับผู้ใช้งานได้
โดยการทำงาของส่วนนี้นั้น ขั้นแรกจำเป็นต้องมีไฟล์เสียงในคำพูดนั้นๆที่เราอยากจะมี สำหรับเสียง FOBI นั้นจะเป็นการนำเสียงคนจริงที่ได้จากการอัดเสียงมาทำเป็นเสียง FOBI และเมื่อ FOBI ได้รับคำถามหรือคำสั่งการทำงานที่ตรงกับเงื่อนไขการเล่นไฟล์เสียงนั้นๆ FOBI ก็จะพูดออกมา เช่น เมื่อคนพูดคำเดิมซ้ำๆ FOBI ก็จะแสดงคำพูดที่เป็นท่าทีที่ไม่พอใจที่คนนั้นพูดแต่คำเดิมๆออกมา โดยการได้รับคำสั่งจะได้รับจาก MQTT ที่ส่งมาจากการตัดสินใจที่อยู่ใน Node-RED ว่าควรจะพูดเสียงที่ ID อะไร

ตัวอย่าง

import os
import paho.mqtt.client as mqtt

def on_connect(client,userdata,flags,rc):
    client.subscribe("module/talking/id")

def on_message(client,userdata,msg):
    message = msg.payload.decode('utf-8')
    if msg.topic == "module/talking/id":
        cmd = "play {}".format("./"+message.split(",")[0]+"/"+message.split(",")[1]+".mp3")
        os.system(cmd)
        client.publish("module/talking/result","1")
        
client = mqtt.Client()
client.username_pw_set("username",password="hcilab")
client.on_connect = on_connect
client.on_message = on_message

client.connect("localhost",1883,60)
client.loop_forever()
client.disconnect()