【コード公開】Raspberry Piで音声認識しテキストを検索表示する。

音声認識の結果からテキストを検索し表示する。

 

Raspberry Pi 3
音声認識 Julius

音声認識の精度を上げるため辞書を設定
テキストファイルを作成

Juliusをモジュールで起動し使用。

 

コード次のようにPythonで記述します。

#!/usr/bin/python
# -*- coding: utf-8 -*-
# julitest0.py

import socket
import string

host = 'localhost' # Raspberry PiのIPアドレス 今回はローカルホストとした。
port = 10500 # juliusの待ち受けポート

# パソコンからTCP/IPで、自分PCのjuliusサーバに接続
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))

data =("")
while True:

    # "/RECOGOUT"を受信するまで、一回分の音声データを全部読み込む。
    while ( string.find(data, "\n.") == -1 ):
        data = data + sock.recv(1024)

    # 音声XMLデータから、を抽出して音声テキスト文に連結する。
    strTemp = ("")
    for line in data.split('\n'):
     index = line.find('WORD="')
     if index != -1:
            line = line[index+6:line.find('"',index+6)]
            s = (strTemp + line)
            print ( ">>>"+s )
            # txtファイルから検索し表示する。
            f=("cocktail.txt")
            ld = open(f)
            lines = ld.readlines()
            ld.close()

            l= (s)
            for line in lines:
             if line.find(l) >= 0:
              print (">"+line[:-1])

     data = ("")

気をつけたい点

  • コード縦列のズレ
  • マイクはオンオフ付きのものにする(バックグラウンド・ノイズ対策)
  • テキストファイル検索時、検索キーワードの設定(辞書)を重複しないようにする。
    例)「モヒート」をキーワードにすると、「〇〇モヒート」全部が表示される。
    対策:「モヒート」→ 「オリジナルモヒート」や「ベーシックモヒート」などにする。

シンプルな構造なので、色々と応用がきくだろう。

 

 

Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Element14版, Clear)-Physical Computing Lab

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です