Open JTalk

は名古屋工業大学で開発された日本語テキスト音声合成ソフトウェアである。

## 概要

Open JTalk は名古屋工業大学にて開発された、日本語を対象とするテキスト音声合成（text-to-speech、文章読み上げ）ソフトウェアである。オープンソースで公開されているスタンドアロン版と、Webサイトで公開されているオンライン版の2種類がある。

合成技術にHMM（Hidden Markov Model、隠れマルコフモデル）を採用しており、少ないメモリでも動作するのが特徴。その特徴からRaspberry Pi上での音声合成ライブラリとしての利用例も多い。

パラメータとしては「声質」（フォルマントシフト）、「ピッチシフト」（声の高さ）、「話速」に対応し、ボイスを切り替えることで感情表現にも対応する。

## 配布
### オンライン版
公式サイト 上でシステムを公開しており、誰でも無料で利用可能。

指定可能なボイス（音響モデル）は2種類（男性1種類、女性4感情4種類）。

### オープンソース版
SourceForgeにてソースコードが公開されている。利用にはビルドが必要。ビルドすることで各種OSに対応する。修正BSDライセンスで公開されている。
音声合成にはさらに辞書データとボイスデータ（音響モデル、htsvoice形式）が必要。
ライセンスに従うことでライブラリとして他ソフトウェアに組み込むことも可能。

## 導入
複数のOSに対応しているものの、OSS版はソースコードとしての公開のため導入にはビルドが必要となる。有志によって簡単に使えるように、さまざまな導入方法が用意されている。

### アプリとしての導入方法
一部を除き、原則コマンドラインアプリとしての入手になる。

;SHABERU
: Windows向けのGUIのあるフリーソフト。追加音響モデルにも対応する。

### パッケージマネージャを利用した導入方法
辞書データや音響モデルの追加導入が必要な場合がある(APT等)。また、導入後ビルドが必要な場合もある(pyopenjtalk等)。

;Docker
: `docker pull u6kapps/open_jtalk` 
;Homebrew
: `brew install open-jtalk` 
;APT
: `apt install open-jtalk` 
: `apt install open-jtalk-mecab-naist-jdic` ※辞書データ
: `apt install hts-voice-nitech-jp-atr503-m001` ※音響モデル
;Python
: `pip install pyopenjtalk` 
;.NET(NuGet)
: `Install-Package SharpOpenJTalk` 
;Node.js (npm)
: `npm install openjtalk` 

## 音響モデル
Open JTalkで利用可能な音響モデル（ボイスライブラリ、htsvoice形式）の例。音響モデルは自作することも可能であり、SHABERU等むけにユーザーが制作した音響モデルが配布されている（規約で許可されていればOpen JTalkで利用可能）。

### NIT ATR503 M001
標準男声音響モデル。Open JTalk本体、辞書データと共に配布されている。
クリエイティブ・コモンズ・ライセンス3.0ライセンス。

### メイ
**メイ**（HTS Voice "Mei"）は名古屋工業大学のMMD Agentを用いたデジタルサイネージでキャンパス案内を行う女性キャラクター。MMD Agentと共にクリエイティブ・コモンズ・ライセンスで配布されている。

Open JTalkで追加女声音響モデルとして利用可能。5つの感情別音響モデル（normal, happy, angry, sad, bashful）がある。

### タクミ
**タクミ**（HTS Voice "Takumi"）はメイと共に名古屋工業大学のMMD Agentを用いたデジタルサイネージでキャンパス案内を行う男性キャラクター。MMD Agentと共にクリエイティブ・コモンズ・ライセンスで配布されている。

Open JTalkで追加男声音響モデルとして利用可能。4つの感情別音響モデル（normal, happy, angry, sad）がある。

### tohoku-f01
東北大学 伊藤・能勢研究室 によって配布されている、Open JTalkで利用可能な女声音響モデル。クリエイティブ・コモンズ・ライセンス(4.0)で配布されている。

4つの感情別音響モデル（angry, happy, neutral, sad）がある。

## 利用
Open JTalk は様々な場面で実利用されている。以下はその一例である：
* MMD Agent - Open JTalkと同じ開発者らが開発・メンテナンスを続けているMMDモデルを利用可能な対話エージェントシステム。音声合成部分はOpenJTalkが使われている。
* NonVisual Desktop Access (NVDA) - Open JTalkが利用可能なOSSのスクリーンリーダー

### ライブラリ・フレームワークとしての利用
音声合成を行わず、OpenJTalkの日本語処理部分のみを利用する事例がいくつか存在する。

* DeNAによるハッカドールのキャラクターを利用した音声合成研究事例
* VOICEVOX - ヒホ（ヒロシバ）作の、ITAコーパス を利用したボイスが利用可能なOSSなDNN音声合成ソフト。
* シロワニさんのつくよみちゃんトークソフト - シロワニさん作の、フリーのDNN音声合成ソフト。

## バージョン一覧

## 技術
Open JTalk は様々な音声合成手法を組み合わせて制作されている。

* 形態素解析: 単語ラティス上の経路予測  + 条件付き確率場
** エンジン: MeCab
** 発音辞書: 発音が追加された NAIST Japanese Dictionary (*NAIST-jdic*) 
* アクセント句推定: 匂坂規則と独自の規則
* 音響モデル: 隠れマルコフモデル
* 波形生成:

## 脚注

### 注釈

### 出典

## 参考文献
* 

## 関連項目
* 名古屋工業大学
** Sinsy - Open JTalkと同じ開発者らが開発したオープンソースの歌声合成ソフト（ボーカルシンセサイザー）
* 隠れマルコフモデル
* 音声合成
* CeVIO Creative Studio - スタンドアロンな日本語音声合成機能を実装した商用姉妹ソフト。開発はOpen JTalkの開発者ら が立ち上げた大学ベンチャーであるテクノスピーチ社。
* MeCab

## 外部リンク
* Open JTalk - HMM-based Text-to-Speech System - 公式サイト（オンライン版）
* Open JTalk - SourceForge版公式サイト
* SHABERU - フリーの音声合成ソフト。Windows向けのOpen JTalkのスタンドアロンソフト。有志による追加ボイス（音響モデル、htsvoice形式）が充実している
* pyopenjtalk - Python向けのラッパーライブラリ
* SharpOpenJTalk - C#向けのラッパーライブラリ
* node-openjtalk - Node.js向けのラッパーライブラリ
* Gyutan - Java移植版
* jtalkDLL - 各プログラミング言語から利用するための共有ライブラリ版
* OpenJTalk For Unity - Unity(ゲームエンジン)むけプラグイン
* tdmelodic_openjtalk - NEologdを基にした日本語アクセント辞書tdmelodicをOpen JTalkから利用できるようにした辞書データ。商用利用不可