質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Julius

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

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

Q&A

0回答

879閲覧

Juliusモジュールモード 認識した音声出力後、初期化処理する構文をいれるとなにも表示されない

kazuki0520

総合スコア4

Julius

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

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

0グッド

0クリップ

投稿2019/08/19 15:39

編集2022/01/12 10:55

前提・実現したいこと

Juliusをモジュールモードの以下のコマンドで起動し、並行して以下、該当のソースコードを立ち上げ、ソケット通信により、
発した音声をprintで出力する。
コマンド
julius -C ~/julius-4.4.2/julius-kit/grammar-kit-4.3.1/XXXX.jconf -module

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

結果:[s]発した音声[s]が出力されてほしいのに、なにも表示されません。

該当のソースコード

python3

1# -*- coding: utf-8 -*- 2 3import socket 4import string 5import sys 6import io 7sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') 8sys.stdin = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8") 9 10host = 'localhost' # Raspberry PiのIPアドレス 11port = 10500 # juliusの待ち受けポート 12 13# パソコンからTCP/IPで、自分PCのjuliusサーバに接続 14sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 15sock.connect((host, port)) 16 17data =('') 18while True: 19 20 # "/RECOGOUT"を受信するまで、一回分の音声データを全部読み込む。 21 while data.find('</RECOGOUT>\n.') == -1: 22 data = data + sock.recv(1024).decode('utf-8') 23 24 # 音声XMLデータから、<WORD>を抽出して音声テキスト文に連結する。 25 strTemp = "" 26 for line in data.split('\n'): 27 index = line.find('WORD="') 28 if index != -1: 29 line = line[index+6:line.find('"',index+6)] 30 strTemp = strTemp + line 31 32 print( "結果:" + strTemp ) 33 data = ('')

試したこと

上記、最終行のdata =('')を削除すると、
結果:[s]発した音声[s]が連続して出力されるため、
初期化するための最終行のdata =('')がミスっているのではと考えています。

それ以外には、printで日本語を出すために
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stdin = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
を入れていまして、これが悪さしているのではとも考えています。

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

ハードウェア ラズパイ3B+

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問