🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Julius

Julius は,音声認識システムの開発・研究のためのオープンソースの高性能な汎用大語彙連続音声認識エンジンです。数万語彙の連続音声認識を一般のPCやスマートフォン上でほぼ実時間で実行できる軽量さとコンパクトさを持っています。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

1回答

1870閲覧

Juliusによる音声認識中にAttributeError

maesho

総合スコア4

Julius

Julius は,音声認識システムの開発・研究のためのオープンソースの高性能な汎用大語彙連続音声認識エンジンです。数万語彙の連続音声認識を一般のPCやスマートフォン上でほぼ実時間で実行できる軽量さとコンパクトさを持っています。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2019/11/18 12:21

編集2019/11/19 04:14

前提・実現したいこと

Juliusで認識した音声でモーターをうごかしたいです。
モジュールモードでJuliusを起動したら以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

#coding:utf-8

import socket
import string
import RPi.GPIO as GPIO
from time import sleep
import move_start
import move_off
import thread_stepper

host = "localhost" # Raspberry PiのIPアドレス
port = 10500 # juliusの待ち受けポート

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))

data = ""

while True:

while ( string.find(data, "\n.") == -1): data = data + sock.recv(1024) strTemp = "" for line in data.split('\n'): index = line.find('WORD="') if index != -1: line = line[index + 6:line.find('"', index + 6)] if line != "[s]": strTemp = strTemp + line if strTemp != "": print("結果:" + strTemp) if strTemp == "終了": move_off.off() if strTemp == "点いて": move_start.on() if strTemp == "止まれ": exit if strTemp == "早く": thread_stepper.stepper() data = ""
File "/home/pi/XXX.py", line 64, in <module> while (string.find(data, "\n.") == -1): AttributeError: module 'string' has no attribute 'find'

該当のソースコード

ターミナルでのpythonが2.7.16でpythonを起動すると3.7.3でした。
多分これが原因かと?

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tachikoma

2019/11/18 12:24

Juliusの動作環境、Python2.7だったりしませんかね。Python3系にはstring.findはないですわ。
maesho

2019/11/18 12:35

Python2.7.16でした。 この場合どうしたらいいでしょうか。 初心者でなにもわからずすいません。
tachikoma

2019/11/18 12:45

どのようにしてスクリプトを実行したかによるのですが、ターミナルからコマンドで実行したのでしたらその時のコマンドを追記してもらえませんか。
maesho

2019/11/18 12:50

julius -C julius-kits/grammar-kit-4.3.1/testmic.jconf -module python XXX.py です。
tachikoma

2019/11/18 12:57

python --versionの結果はどうなりますか?
maesho

2019/11/18 13:03

Python 2.7.16でした。
tachikoma

2019/11/18 13:12

それは奇妙ですね。Python 2.7ならそのエラーは出ないと思ったのですが。試すとしたら、エラーが出る箇所をdata.find("\n.")のように書き直してみるくらいですかね
guest

回答1

0

自己解決

ターミナルで起動するPythonのversionとアプリケーションで起動するPythonのバージョンが異なっていました。(ターミナル2.7.16とアプリケーション3.7.3)
問題になっていた
while ( string.find(data, "\n.") == -1):
data = data + sock.recv(1024)

while ( str.find(data, "\n.") == -1):
data = data + sock.recv(1024).decode('utf-8')
に修正してXXX.pyをアプリケーション側(version3.7.3)で実行したらうまくいきました。

投稿2019/11/19 09:25

maesho

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問