ID別に名前をつけた画像ファイル群をドロップするだけで学習開始。識別したい画像のドロップすれば識別してくれます!
ID別の確からしさも表示するシンプルなwebアプリ、AIの一種、機械学習(Machine Learning / ML)で作ってる感が楽しいです。
「AI画像学習&識別 by TensorFlow.js」(src on GitHub)
cat > julius-client-ichigojam.py
#!/usr/bin/env python3
import xml.etree.ElementTree as ET
import socket
import serial
ser = serial.Serial("/dev/tty.SLAB_USBtoUART", 115200, dsrdtr=True)
def recog(words):
s = ""
for w in words:
s += w
print(s)
if s == "1":
ser.write(b"1 ")
elif s == "2":
ser.write(b"2 ")
elif s == "3":
ser.write(b"3 ")
elif s == "4":
ser.write(b"4 ")
elif s == "5":
ser.write(b"5 ")
elif s == "LED1":
ser.write(b"LED1\n")
elif s == "LED0":
ser.write(b"LED0\n")
elif s == "WAIT60":
ser.write(b"WAIT60\n")
elif s == "GOTO1":
ser.write(b"GOTO1\n")
elif s == "RUN":
ser.write(b"RUN\n")
elif s == "LIST":
ser.write(b"LIST\n")
elif s == "ESC":
ser.write(b"\x1b")
elif s == "ENTER":
ser.write(b"\x10")
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("127.0.0.1", 10500))
sockfile = client.makefile()
data = ""
while 1:
line = sockfile.readline()
if line != ".\n":
data += line
else:
root = ET.fromstring(data)
data = ""
if root.tag == "RECOGOUT":
words = []
for wordtag in root.iter("WHYPO"):
words.append(wordtag.attrib["WORD"])
words.pop(0)
words.pop()
recog(words)
git clone https://github.com/julius-speech/julius.git
cd julius
./configure --enable-words-int
make
sudo make install
cd ~
mkdir -p sandbox/julius-kits
cd sandbox/julius-kits
wget -O dictation-kit-v4.3.1.tar.gz https://github.com/julius-speech/dictation-kit/archive/dictation-kit-v4.3.1.tar.gz
wget -O grammar-kit-4.3.1.tar.gz https://github.com/julius-speech/grammar-kit/archive/v4.3.1.tar.gz
tar xvf dictation-kit-v4.3.1.tar.gz
tar xvf grammar-kit-4.3.1.tar.gz
mv dictation-kit-dictation-kit-v4.3.1 dictation-kit-v4.3.1
cd ~/sandbox/julius-kits/grammar-kit-4.3.1/bin/linux/
ln -s `which mkfa`
ln -s `which dfa_minimize`
独自語彙設定
mkdir -p ~/sandbox/test
cd ~sand/box/test
cat > test.yomi
% TARGET
IchigoJam いちごじゃむ
テレビ てれび
アンプ あんぷ
ウーハー うーはー
LED えるいーでぃー
% ACTION
つけて つけて
消して けして
ON おん
OFF おふ
% WO
を お
% NS_B
[s] silB
% NS_E
[s] silE
独自文法設定
cat > test.grammar
S : NS_B TARGET ACTION NS_E
S : NS_B TARGET WO ACTION NS_E
import com.ibm.watson.developer_cloud.conversation.v1.*;
import com.ibm.watson.developer_cloud.conversation.v1.model.*;
public class Main {
static final String USER = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx";
static final String PASS = "xxxxxxx";
static final String WORKSPACE = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx";
public static void main(String[] args) throws Exception {
ConversationService service = new ConversationService(ConversationService.VERSION_DATE_2016_07_11);
service.setUsernameAndPassword(USER, PASS);
MessageRequest newMessage = new MessageRequest.Builder().inputText("おはようございます").build();
MessageResponse response = service.message(WORKSPACE, newMessage).execute();
System.out.println(response);
}
}