• 検索結果がありません。

Publication 論文 鈴村研究室 大規模データ処理・ストリームコンピューティング

N/A
N/A
Protected

Academic year: 2018

シェア "Publication 論文 鈴村研究室 大規模データ処理・ストリームコンピューティング"

Copied!
9
0
0

読み込み中.... (全文を見る)

全文

(1)

処理系を用い 音声処理

西井 俊 鈴村 豊太郎

東京工業大学 〒152-8550 東京都目黒区大岡山 2-12-1 IBM東京基礎研究所 242-8502 神奈川県大和 鶴間 1623-14 E-mail: [email protected], [email protected]

本研究 , 々刻々 流 計算処理 操作を行う 出来 処理 処理 系を用い 並列音声 識 を実装 .処理系 記述力 音声 識 並列 散,処理 拡張 容易 行え を示 , 識処理 を4 16 構成 散並列環境 ン 比較 、13.8倍 ッ 得 . , 処理 ッ を大 保 ,識精度を過度 い う ,音声 識 ビ ビ 幅 着目 , 入力 大 い ビ 幅を , 識精度を犠牲 ッ を向 機構を実装 . 機構

ッ 識精度 両方を保 出来 を実験的 示 .

処理,DSMSDSPSSystem SSPADE,音声 識,ビ ,Julius

Highly Scalable Speech Processing on Data Stream Processing System

Shunsuke NISHII and Toyotaro SUZUMURA

Tokyo Institute of Technology 2-12-1 Ookayama, Meguro-ku, Tokyo, 152-8550 Japan IBM Research - Tokyo 1623-14 Shimotsuruma, Yamato-shi, Kanagawa, 242-8502 Japan

E-mail: [email protected], [email protected]

Abstract In this paper we describe the implementation and evaluation of a Julius-backended parallel and scalable speech recognition system on the data stream management system ``System S'' developed by IBM Research. Our experimental result on our parallel and distributed environment with 4 nodes and 16 cores shows that the throughput can be significantly increased by a factor of 13.8 when compared with that on a single core. We also demonstrate that the beam management module in our system can keep throughput and recognition accuracy with varying input data rate.

Keyword Data Stream Processing, DSMS, DSPS, System S, SPADE, Speech Recognition, Beam Search, Julius

1. 研究 背景

日,あ あ ゆ 場所 大規模 的 電子的 音声

や 行わ , う 音声 い 何

音声処理を施 技術 求 い .例え ,企業

ン 顧 オ

音声 識, 処理を加え オ 伝え

内容を伝え い , ン ン 違 う 発言を い い を確 , 中 ワ

オ 必要 情報をオ

表示 , ン 品質向 様々

用途 用い . う , 音

声処理 有用性 高い いえ . ,

処理[1] , 々刻々 流 大量 を

保管 オン

処理 計算 昨 活発 研究 ,

IBM System S[2][3]M.I.T. Borealis[1]

処理系 び ン 提案 い .

従来 音声処理 研究 [4]

う 音声処理を, 処理

を用い 様々 処理を統括的 ,高い拡張性を有

管理 . ,本研究

処理系System Sを基 ,汎用的 音声 識オ

を実装 , ビ 評価 簡単 並列音声

識 を実装 .

通常,音声 識 性能指標 識精度, ッ ,遅延 発生 い い 応答 間 一

立 降 固定 あ . 識精度

ッ オ 関係 あ , ッ を高

識精度を犠牲 必要 生 .入力

一定 い 場合 問題 い

,入力 状況 変化 場合,入力

い ッ を高 必要

.一方,入力 高い 識精度を 高 , ッ を い ,処理 遅延 生 , 応答 間 増大 う. , う 環境 状

況 応 識精度 ッ 優先 を変化

機構 有効 あ . ,本研究 識器 識精度 処理 間 最 影響を え あ ビ 幅 着目 ,現在 入力 応 最適 ビ

幅を設定 機構を実装 .

(2)

[Nodepools]

nodepool Computer[] := ("node0", "node1")

[Application]

stream TCPData(data0 : Integer, data1 : Float) := Source()["ctcp://some_address", csvFormat]{}

-> node(Computer, 0), partition["part0"]

stream LimmitedData(data0 : Integer) := Functor(TCPData)[data1 >= 1.5]{}

-> node(Computer, 0), partition["part0"]

stream Average(avg : Integer)

:= Aggregate(LimmitedData<count(10),count(1)>) []{avg := Avg(data0)} -> node(Computer, 0), partition["part1"] Nil := Sink(Average)[“file:///average.csv”, csvFormat]{}

-> node(Computer, 1), partition["part2"]

SPADE 一 例

降 章 , 第2章 関連研究 い 述 .第

3 処理 4

声 識 い 簡単 明 .第5章 設計 実装,第

6 評価,第7 本論文 を述

2. 関連研究

[4] 音声処理 研究

処理能力 ビ 評価 ,想定

ビ い 必要 数を求 手法

を提案 い .本研究 , 処理を汎用

的 扱う 処理

を用い 点, び 1 当 処理能力を状況 応 変化 い 点 当研究 異 .

[5] 処理系

ン 関 研究 多 い . ン

,入力 増大 流 一部を

削除 , 遅延を防 性を

を い .本研究 ビ 幅管理 異 方法 あ ,入力 増大

性を いう点 ン 類似 い

いえ .

3. 処理 System S

3.1 処理

処理[1][2][3][6][7] 生成

情報 流 を び, を蓄積

逐次処理 い いう新 い計算 あ . ッ 処理 計算 象を全 蓄積 計算 従来 手法 違い, 応答 要求 場合や, 系列 前後 僅

を参照 い計算や,全 蓄積 物理的 困難 処理 適 い . う 手法 音声や動画

ン 一部 処理 利用 い ,

処理 を抽象 汎用化 ,幅広い処理 適

用 う洗練 処理系 い 点

従来 異 い .

う 処 理 系 を DSMS / DSPS (Data Stream Management / Processing System) 一例 M.I.T. Borealis[1]IBM Research System S[2][3]

在 , 数 活発 研究 い .多 DSMS ン 実行を前提 い ,Borealis

System S 散環境 実行

3.2 System S SPADE

System S[2][3] 直感的 処理を記述

SPADE[6] いう言語 ,自動性能最適化機構を持

SPADE ,処理基 SPC[7] 構成

SPADE 高級 言的言語 ,処理

,処理を行うオ 関係を記述

処理を実行 , 間や 間 通信や,

ン 立 を意識 ン

能 あ .広範 処理 適用 能 汎用 組 込 オ を持 ,単純 処理 組 込 オ

を設定 実装 .汎用オ 十 場合 ,C++Javaを用い 定義

独自 オ や関数 作成 い .

SPADE 1 や最適化を段階的

行う 高度 最適化を施 .SODA[2] 実行中 割 当 変更 う 動的 最適化

,処理全体 高速化 い .

2 SPADE TCP

1 SPADE [6] 引 用

(3)

を 信 ,data1 1.5 均値を求 書 出 い う 処 理 を 表 い .

[Nodepool] 処理を行う を指定

node0 node1 指定 い .[Application] 降 実際 処理を記述 部 ,stream文 次 記

い 前 ,次 行 オ

処理内容を表 い .Source を 付

オ , ン

some_address TCP接続を行い,CSV形式

data0data1 いう を作成 Source

TCP DB

次 行 nodepartition オ を や

ッ 実行 を指定 部 , Computer

0番目, node0 実行 を指定

partition を指定 い ,partition

オ 一 ッ 動作 , をSystem S

FUSION ぶ.次 Functor

中 様々 処理を行うオ , 条

件文を用い 選別を行 い .Functor 内 外 複雑 関数を利用 ,関数

自身 定義 .Aggregate

一定 区間 区 ,区 中 操作を

行うオ , 十個 ッ を

を一 動 い , 中 均値を

avg 出力 操作 Windowing

.最後 SinkSource

存在 , を様々 形式 出力 オ あ .

System S を条件 合わ 複数

Splitや,逆 を一 Join

期を行うBarrier 多様 組 込 オ

定義オ UDOPを持 ,複雑

処理 応 能 い .UDOP 実際 処理 外 通信や 管理部 書

ン を自動生成 , 処理部 をC++Java 記述 い. ,汎用オ

表現 い複雑 処理や操作を実現 ,

UDOP 自体

高度 柔軟性,再利用性 恩恵を .

多 処理 組 込 オ 用意 ,

間や 間 通信を 行う 開

発 間を短縮 点や, 定義 オ や関数 複雑 柔軟 処理 能 あ 点, や ッ

指定 容易 あ 点 System S

理や 研究 適 い 言え,本研究

処理系 System Sを使用

4. 音声 処理性能 要因

4.1 音声

音声 識 ,人 発 音声を入力 発 内容を 文章 出力 処理 あ .音声 識 ,音声を特徴 量 系列 X = x1, x2, …, xT 変換 ,文章をW

置い 確率P(W|X) を最大化 う 文章 を求

P(W|X)を直接求 困難 あ , 則

基 次式 う 変形 .

式中 P(X|W), P(W) を求 使用 統計

音響 ,言語 いい, 隠 (HMM; Hidden Markov Model)N-gram

用い 主流 あ .

音 声 識 ン ン ,HTK[8], Julius[9][10], T

3

decoder[11] 存在 ,本研究 SPADE

UDOP 音声 識オ を実装 便宜

Julius 4.1.4

4.2

Julius ,音響 言語

ワ を構築 ,入力音声 tree-trellis [12]

い 音声 識を行う. 全

2 構成 ,第一 強い近似 を 用い 粗い 索 解文章 候補を絞 込 , 結果 基 い 第 細 識を行い,最終的 出力を得

.第一 ,第 , ッ ワ 解 索

全 経路 い 索を行う , 高い

仮 計算を行い 外 仮 を棄却 手法を い . 索手法をビ び,ビ

足 幅をビ 幅 ぶ.

音声 識処理 い 処理 間 大部 を占 第一 処理 あ .精度 高い音声 識を行う , 広い 索空間 解文 識仮 候補 残 確率 を高 ,第一 ビ 幅 値を十 大

い.一方 値を大 識

要 間 大 う. ,第一

ビ 幅 設定 Julius 識精度 び処理 間

最 大 影響 .

降 節 ,第一 ビ 幅 を単純

ビ 幅 ぶ .

5. 設計 実装

System S SPADEを用い 音声

を実装 . 3

を示 , 4 個々 オ

(4)

細 構成を示 . , SPADE

Appendix 記載 .Appendix ソ 中 番

号 振 い 箇所 , 4 応 番号 オ 記述を表わ い .

節 ,5.1~5.3 節 設計 理念 議論等

を述 ,5.4節 各 い 明 .

5.5 ,個々 処理

い 明 .

5.1 拡張性

並列 散処理 性,様々 音声処理 拡

張性を考慮 設計を行 .

SPADE 行数 120 行程度

SPADE を用い 複数 並列 散処理

簡単 記述 を示 い . ,並列 散処理 を行う ,1~2行目 並列数 記述 び

24~27行目 記述を変更

容易

. , 音声 識 を行う

実装 い , 71~75行目 記述 い

(4) “Decoder@j_Transcription”

“UDOP SpeechDecoder” 処理を追記 音声 識を基 様々 音声処理 拡張

5.2 音声 識オ

3 識器 音声 識を実行

, 内部 外部 音声 識を実際 行 う を用意 必要 あ .本研究 ,3.2節 述 UDOP 音声 識オ を実装 .

オ , 4 (4)SpeechDecoder

声 識オ ,本研究 外 用い

う ,汎用的 オ 実装

い .オ ッ ン ン ン Julius

あ libjulius, libsentを用い

5.3 後述 理由 Julius

値を 実行中 変更 う 実装

い . ,オ 実装 際,実装 び評価 容易性 ,音声 発 区間1 を 入力

, 区間 入力 完了 識処理を開始 方法を .

5.3 幅管理機構

4.2 ,音声 処理 間を要

第一 処理 あ , 処理 間 ビ 幅 設定

依存 .通常,Julius ビ 幅 予

適 値を設定 , ン ン 起動 降 値を続

使用 . ,ビ 幅 設定

識精度,応答 間, ッ 変化 ,入力

小 い , ッ あ 大 値

を必要 い.一方,入力 大 い

ッ を大 い 処理 追い ,応答 間 増大 う. 本研究 ,5.2節 述

入 力 タ 計測

ビ ム幅 管 理 機 構

入力×M M×N

×M

入 力 パ サ 認 識 器

×N 出力

入力時刻

入出力時刻 タサイズ ビ ム幅

外部コマン

3 構 成

4 構成

Source InputP arser

Functor

Aggregate

Split

Functor

Functor

UDOP

Spe e chDe code r

Functor

UDOP

Be amManage r

Source

Functor

入 力 パ サ 認 識 器 出 力

入 力 タ 計 測 ビ ム 幅 管 理 機 構

音 声 音 声+ 付 加 情 報

入 力 時 刻

入 力

出 力

入出力時刻 タサイズ

コマン 認識結果 認識器割り当て

Sink

ム幅設定

認識結果+ 付加情報

0

1

2

3

4 5

6 7

8 9 B A

(5)

通 , 実行中 ビ 幅を再設定 う 音 声 識オ を実装 . ,入力

応 最適 ビ 幅を設定 機構を実装 . 機構 音声 識オ 様UDOP 記述 ,

4 (B)BeamManager 機構

識器 ビ 幅 設定 値 候補 例: 400, 800, 1200

を 利用者 設定 う. ビ 幅 ,

利用者 予 用意 計測用 を

用い ッ を計測 . 後, 実運用

,入力 を 視 , ッ 入力

を 回 い範 最大 ビ 幅を選択 , 値 現在 識器 ビ 幅 異 場合 識器

ビ 幅を再設定 を送 .

5.4 構成

3 入力

識器 ,入力 計測 ,ビ 幅管理 4

構成 い . 各

い 明 .

,入力 ソ ッ 通信 入力を 付 ,

System S 内部 扱え 形式 変換

あ ,M M ッ 並列 動作 .入力 各 ッ 独立 ソ ッ 通信

を持 ,1 ッ ッ 集中

を防 . ,入力 計算機

を使 入力 刻を 付 . 入力 刻

入力 や ッ 測定 用い .

次 , 識 5.2節 実装 音声 識オ

を用い あ ,N N ッ 並列

動作 . N並列 識 入力 M並列 入

力 え , 入力 識

ッ 割 当 ン

ビン法 基 決定 . わ ,入力 入力 を処理 識 1番,2番,

N を割 N 再び1

いう風 割当先を決 . 識 音声 識 完 了後, 識結果を出力 . ,出力 計算機

を使 出力 刻を求 ,入力 刻,出力 刻 び

音声 長 をビ 幅管理 え . 値

, ッ 計測 用い

入力 測定 ,入力 刻を 現

在 入力 を測定 .ビ 幅管理

外部 ン 入力 ,(1)ビ 幅 設定,(2) 現在 ビ 幅 ッ 計測,(3)現在 入

力 最適 ビ 幅を設定, 3

動作を . う (3)(2) 測定 ッ

値 現在 入力 処理 能 最

大 ビ 幅を選択 .

5.5 を構成

4 全体 を示

. 全体 12 目 オ 構成

, 各オ (0)~(9), (A), (B) 番号を割

振 い . う (0)(3) 入力 ,(4)(7)

識 ,(8), (9) 入力 計測

(A), (B) ビ 幅管理 属 .

各オ 動作 明を 記 .

(0) 外部 音声入力をSystem S内部 扱う

形式 変換.

(1)入力 識器割 を付加.

(2)音声入力を各 識器 割.

(3)入力 計測用

(4)音声 識を行う.ビ 設定 能. (5)出力 刻を付加.

(6) 計測用

(7) 外部 識結果を出力. (8)入力情報を一定 窓幅 集計.

(9)入力 計測.

(A) 外部 を入力.

(B) を集積 ,必要 幅を設定.

6. 評価

識 ッ 数

ッ 性, びビ 幅管理

動作 い 実験的 評価 .

6.1 実験環境

実験 計算機環境 , 外部 入力を行い 出力を Opteron 1.6GHz L2 512KB (2 cores),

Memory 8GB1 入力 動作, び出力

測定 用い Phenom X4 2.0GHz L2 512KB (4 cores),

Memory 3.5GB1 動作 用い

Phenom X4 2.5GHz L2 512KB (4 cores), Memory 8GB4

,入力 測定 びビ 幅管理

0.0 5.0 10.0 15.0 20.0 25.0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

最大同時処理人数

認 識 モジュ のコア数N

5

(6)

動作 用い Phenom X4 2.5GHz L2 512KB (4 cores),

Memory 8GB1 用い 計算機環境全体

ワ 環境 ,1Gbps ッ 接続 い .

ソ 環境 全 共通 ,CentOS 5.2

2.6.18-92.el5 AMD64, gcc4.1.2, InfoSphere Streams 1.2 (System S) を用い

6.2

音響 ,日本語 言葉 (JNAS)[13]

録 い 52.4 間 う ,男性 者25.1 間,女性 者27.3 間 音声 基 学習 ,特徴量

38次元 MFCC+Δ+ΔΔ+ΔE+ΔΔE 16混合

総状態数3000 triphone HMMを用い 言語

毎日新聞社 19912002 新聞記 基 学習

6万語彙 3-gramを用い ,ビ 幅を除

Julius設定 ,ビ 1200

後述 評価用 ッ RTF 1.0 値を設定 .

6.3 評価用

評価 入力 え ッ

JNAS 録 い IPA-98-TestSetを用い

音響 学習 用い 音声 重複 い音声 あ

.実験 ッ をset0set1 2

使用 .set0 IPA-98-TestSet 20% 音声 男性 1.8 女性1.9 合計3.7 set1 80%

音声 男性7.9 ,女性8.6 ,合計16.5 構成 .

6.4 評価

入力 並列数M4 ,ビ 幅を1200 固定

, 識 並列数N116 変化 識 全体 ッ を計測 .入力

,入力 set0全体を用い

5 結果を示 .縦軸 値 ッ 単 最 大 処理人数 あ , 値 RTF 逆数 一致 .

, ン 動作 最大 処理人数 1.44

16 並列動作 最大 処理人数 19.3

. ,16 並列動作 ッ ン 動作 13.8倍 を示 い . , 際 set0 単語誤 率 5.9% あ . 0.0

10.0 20.0 30.0 40.0 50.0

1 10 19 28 37 46 55 64 73 82 91 100 109 118 127 136 145 154

入力タ人数

入 力 タ系列 番号

6 set1 入 力 変化 7 set1 識 誤

1 1 .5

9 .5 8 .8 9 .5

0.0 2.0 4.0 6.0 8.0 10.0 12.0 14.0

固定400 固定800 固定1200 可変

単語誤り率(%)

ビ ム 幅

0.0 1.0 2.0 3.0 4.0 5.0 6.0

1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131 136 141 146 151 156

応答時間RTF

入 力 タ 系 列

固定4 0 0 固定8 0 0 固定1 2 0 0 可変

8 set1 応 答 間 係数 応答 間 平音 声

(7)

6.5 幅管理 動作 評価

ビ 幅管理 動作 ,入力 応 ビ 幅を再設定 ,高

応答 間 増大 動作

を実証 .入力 並列数M 4, 識 並列数N 16 .設定 ビ 幅 候補

,400, 800, 1200 現在 入力

最適 を選ぶ う . 際 ッ を計測

set0を用い set1を用い

, ,入力を え 速度を 6 示 通 変化

行 . 条件 ッ 応答

間 び単語 識誤 率を,ビ 幅 値を400, 800, 1200

値 固定 場合 比較を行 .

ッ 各音声 単語誤 率を 7 ,応答 間を 8 示 . , 応答 間 ,各発 区間

発 終了 出力 間 .ビ

幅 変 場合, ビ 幅 高 ,高 ビ 幅 設定 , 7 示 通 ,単語誤 率 ビ 幅を400 変幅 最小値 固定 場合 小 ,ビ 幅を1200 変幅 最 大値 固定 場合 大 . , 8 結 果 ,ビ 幅を 変 場合,1200 固定 場合 比

,高 応答 間 増大 抑え い

. う ,ビ 幅管理 ッ

識精度 両方を保 . ,ビ 幅 値を う 設定 場合 ,高

的 応答 間 増大 生 い . , 識器 割 当 5.4節 述 通 ン ビンを用い い 原因 あ 考え . わ ,

割 当 一部 識器 負荷 集中 い, 結果 識器 割 当 音声 処理 遅延

生 う 考え .

7. 課題

本研究 , 処理系System S 基 い

Julius 4.1.2 使い,汎用的 音声

オ を実装 . , 音声 識オ を用 い 並列 散音声 識 を構成 , 内

ッ 識精度を保 ビ 幅管理 を実装 .評価実験 ,実装

識 ッ 数 性 ,16

ッ 並列動作 ッ ン ッ 動

13.8 倍 程度 あ を示 . ,実

験 ビ 幅管理 う 動作

ッ 識精度 両方を保 を示 .

回 実装 ,入力 識

割 当 ン ビン法を用い .

う 方法 , 識 ッ 量

生 い,応答 間 定 問題 あ . を防 方法 ,入力 音声 間を 量 近似 ,各 ッ 割 当

合計 音声 間 均等 う 割 当 いう 方法 考え . ,各 ッ い 処理待

大 を見 ,最 小 い ッ を

割 当 方法 考え , SPADE

通常 方法 実装 い.

, 回実装 音声 識オ ,音声入力を

一括 識処理を始 方式を 用 .

方式 ,発 開始 逐次入力 ,処理を 進 方式 異 ,発 完了 応答 間 大

う いう問題 あ . ,逐次処理 能 音声 識オ , び音声 識 を実装 必要 あ .

実装 あ ,UDOP 駆動方式 libjulius

ッ 方式 兼 合い 悪 ,libjulius

次処理 能 音声 識オ 実装 困難 あ .

,逐次処理 能 音声 識オ を う う 方法 考え .一 ,自前 音声

識 ン ンを実装 ,あ い libjuliusを大 改造

方法 あ , 既存 資源を有効活用 ,

手法 あ . う一 ,libjulius 音声

識 ン ンをSystem S 外部 実行 う 実装 ,

ン ン や をUDOP, source

を用い 実装 方法 挙 .後者 方法 あ 前 者 実装 容易 あ , UDOP ン ン

割 当 管理を行う 適 管理を実装 いう利点 あ .

,逐次処理方式 識器1 ッ あ CPU 使用率 あ 大 い. ,逐次処理 一 括処理 う 11 ッ 固定

, 多 ッ を立 方 効率 良 .

,計算機 処理限界を超え い範 稼働

ッ 数 最大 値 , 識器全体 ッ .

謝辞

本研究 一部 科学研究費補助金 挑戦的萌芽研究 課題

番号:22650017) 助成 行わ

(8)

参 考 文 献

[1] D. J. Abadi, Y. Ahmad, M. Balazinska, U. Çetintemel, M. Cherniack, J.-H. Hwang, W. Lindner, A. S. Maskey, A. Rasin, E. Ryvkina, N. Tatbul, Y. Xing and S. Zdonik. The Design of the Borealis Stream Processing Engine. In P roc. CIDR, pages 277–289, 2005.

[2] J. Wolf, N. Bansal, K. Hildrum, S. Parek h, D. Rajan, R. Wagle, K.-L. Wu and L. Fleischer. SODA: An Optimizing Scheduler for Large-Scale Stream-Based Distributed Computer Systems. Middlewa re, 2008.

[3] B. Gedik, H. Andrade and K.-L. Wu. A Code Generation Approach to Optimizing High-Performance Distributed Data Stream Processing. In P roc. USENIX, pages 847-856, 2009.

[4] 荒 金 陽 助, 清 志, 金 井 . 音 声 ビ 評 価 検 討. 情 報 処 理 学 会 論 文 46(9), pp. 2269-2278, 2005.

[5] N. Tatbul, U. Cetintemel, S. Zdonik, M. Cherniack and M. Stonebraker. Load Shedding in a Data Stream Manager. In P roc. VLDB, 2003. [6] B. Gedik, H. Andrade, K.-L. Wu, P. S. Yu and M. Doo. SPADE: The System S Declarative Stream Processing Engine. In P roc. SIGMOD , pages 1123-1134, 2008.

[7] L. Amini, H. Andrade, R. Bhagwan, F. Eskesen, R. King, P. Selo, Y. Park and C. Venkatramani. SPC: A Distributed, Scalable Platform for Data Mining. DM-SSP , pages 27-37, 2006.

[8] S. Young, G. Evermann, T. Hain, D. Kershaw, G. Moore, J. Odell, D. Ollason, D. Povey, V. Valtchev and P. Woodland. The HTK book (for HTK Version 3.2). 2002.

[9] A. Lee and T. Kawahara. Recent Development of Open-Source Speech Recognition Engine Julius. Asia -P a cific Signa l a nd Infor ma tion P r ocessing Associa tion Annua l Summit a nd Confer ence (AP SIPA ASC), 2009.

[10] . 大 語 彙 連 続 音 声 識 ン ン

Julius ver.4. 電 子 情 報 通 信 学 会 技 術 研 究 報 告. SP, 音 声 107(406), pp.307-312, 2007.

[11] P. R. Dixon, D.A Caseiro, T. Oonishi, S. Furui. The Titech Large Vocabulary WFST Speech Recognition System. IEEE ASRU , pages 443-448, 2007.

[12] A. Lee, T. Kawahara and S. Doshita. An Efficient Two-pass Search Algorithm using Word Trellis Index. In P roc. ICSLP , pages 1831-1834, 1998.

[13] 板 橋 秀 一, 山 本 , 竹 沢 , 小 林 哲 則. 日 本 音 響 学 会 新 聞 記 音 声

構 築. 日 本 音 響 学 会 研 究 発 表 会 講 演 論 文 集 1997(2), pp. 187-188, 1997.

(9)

Appendix SPADE

1#define SRC_NUM 4 2#define DEC_NUM 16 3

4#define INPUTPARSER_BLOCKSIZE 512*1024 5#define DEFAULT_BEAM 400

6#define INPUTRATE_AGG_RANGE 10 7

8#define SRC_HOST st00 9#define CMD_HOST se00 10#define SNK_HOST sa07 11

12[Application] 13ssr 14 15[Libdefs]

16incpath "~/udoplib/julius-4.1.4/libjulius/include/" 17incpath "~/udoplib/julius-4.1.4/libsent/include.fix/" 18libpath "~/udoplib/julius-4.1.4/libjulius/" 19libpath "~/udoplib/julius-4.1.4/libsent/" 20libs "julius"

21libs "sent" 22 23[Nodepools]

24nodepool n_src[] := ("st00") 25nodepool n_dec[] :=

26("st05","st06","st07","st08","st05","st06","st07","st08", 27 "st05","st06","st07","st08","st05","st06","st07","st08") 28nodepool n_misc[] := ("se00")

29 30[Program] 31

32# --- INPUT PARSER MODULE (@i) : Input@i* 33

34for_begin @i 0 to SRC_NUM - 1

35 stream Input@i_Source(id: String, speech: ShortList, nsamples: Integer) 36 := Source() ["stcp://SRC_HOST:627@i/",

37 udfbinformat="InputParser", blockSize = INPUTPARSER_BLOCKSIZE, noDelays] {} 38 -> node(n_src, 0), partition["p_src_r@i"]

39

40 stream Input@i_SpeechTag

41 (id: String, speech: ShortList, nsamples: Integer, itime: Long, selector: Integer) 42 := Functor(Input@i_Source) [] { itime := timeMicroseconds(),

43 selector := mod(toInteger(seqNum()) + @i * DEC_NUM / SRC_NUM, DEC_NUM) } 44 -> node(n_src, 0), partition["p_src_r@i"]

45

46 for_begin @j 0 to DEC_NUM - 1 47 stream Input@i_SplitTo@j

48 (id: String, speech: ShortList, nsamples: Integer, itime: Long, selector: Integer) 49 for_end

50 := Split(Input@i_SpeechTag) [selector] {} 51 -> node(n_src, 0), partition["p_src_r@i"] 52

53 stream Input@i_ITime(nsamples: Integer, itime: Long) 54 := Functor(Input@i_SpeechTag) [] {}

55 -> node(n_src, 0), partition["p_src_r@i"] 56for_end

57

58bundle B_Input_ITime := () 59for_begin @i 0 to SRC_NUM - 1 60 B_Input_ITime += Input@i_ITime

61for_end 62

63# --- SPEECH DECODER MODULE (@j) : Decoder@j* 64

65for_begin @j 0 to DEC_NUM - 1 66 bundle B_Decoder@j_SpeechTag := () 67 for_begin @i 0 to SRC_NUM - 1

68 B_Decoder@j_SpeechTag += Input@i_SplitTo@j 69 for_end

70

71 stream Decoder@j_Transcription(id: String, transcription: String, 72 nsamples: Integer, beam: Integer, itime: Long)

73 := Udop(B_Decoder@j_SpeechTag[:] ; BeamMan_Beam) ["SpeechDecoder"] 74 {beam="DEFAULT_BEAM"} -> node(n_dec, @j), partition["p_dec@j"] 75for_end

76

77# --- (SINK) : Sink* 78

79bundle B_Sink_Transcription := () 80for_begin @j 0 to DEC_NUM - 1

81 B_Sink_Transcription += Decoder@j_Transcription 82for_end

83

84stream Sink_Result(id: String, transcription: String, nsamples: Integer, 85beam: Integer, itime: Long, otime: Long)

86 := Functor(B_Sink_Transcription[:]) [] {otime := timeMicroseconds()} 87 -> node(n_src, 0), partition["p_src_otime"]

88

89stream Sink_TrainingData

90(nsamples: Integer, itime: Long, otime: Long) 91 := Functor(Sink_Result) [] {}

92 -> node(n_src, 0), partition["p_src_otime"] 93

94Null := Sink(Sink_Result)

95 ["ctcp://SNK_HOST:6281/", csvFormat, noDelays]{} 96 -> node(n_misc, 0), partition["p_misc_sinkt"] 97

98# --- INPUT RATE MODULE : InputRate* 99

100stream InputRate_Agg

101(sum_ns: Integer, last_ns: Integer, max_itime: Long, min_itime: Long) 102 := Aggregate(B_Input_ITime[:] <count(INPUTRATE_AGG_RANGE), count(1)>) 103 [] { Sum(nsamples), Last(nsamples), Max(itime), Min(itime)}

104 -> node(n_misc, 0), partition["p_misc_beam"] 105

106stream InputRate(irate: Double) 107 := Functor(InputRate_Agg) []

108 { (1000000.0d / 16000.0d) * toDouble(sum_ns - last_ns) / toDouble(max_itime - min_itime) } 109 -> node(n_misc, 0), partition["p_misc_beam"]

110

111# --- BEAM MANAGER MODULE : BeamMan* 112

113stream BeamMan_Command(command: String)

114 := Source() ["stcp://CMD_HOST:6280/", csvFormat, noDelays] {} 115 -> node(n_misc, 0), partition["p_misc_beam"]

116

117stream BeamMan_Beam(beam: Integer)

118 := Udop(BeamMan_Command ; Sink_TrainingData; InputRate)

119 ["BeamSetter"] { beam="DEFAULT_BEAM", agg_range="INPUTRATE_AGG_RANGE" } 120 -> node(n_misc, 0), partition["p_misc_beam"]

0

1

2

3

4

5

6

7

8

9

A

B

参照

関連したドキュメント

Spatial dose distribution curves based on the measurement of clinical cases, theoretical and experimental analyses were studied around the patients treated with 131I for

In this study, we evaluated the impact of climate change on explosive cyclone using the large ensemble climate prediction data (d4PDF) of present climate experiment 3,000 years

機械物理研究室では,光などの自然現象を 活用した高速・知的情報処理の創成を目指 した研究に取り組んでいます。応用物理学 会の「光

By the method I, emotional recognition rate is 60% for close data, and 50% for open data(8 sentence speech of another speaker).The method II improves drastically the recognition

社会学文献講読・文献研究(英) A・B 社会心理学文献講義/研究(英) A・B 文化人類学・民俗学文献講義/研究(英)

となる。このとき、他の法人課税信託の類型に該当しない場合には、原則の信託形態(受

In this study, a Large-Eddy Simulation model that is capable of resolving urban buildings and the whole atmospheric boundary layer was employed to investigate the

第三十八