Skip to content

音声認識システム Julius を C# で利用できるようにしたライブラリ

License

Notifications You must be signed in to change notification settings

sappli-llc/JuliusSharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JuliusSharp とは

大規模語彙連続音声認識エンジン Julius をベースに、C# で利用できるようにしたカスタマイズしたライブラリです。

利用しているもの

JuliusSharp で利用しているもの

  • 大規模語彙連続音声認識エンジン Julius
    • Copyright (c) 1991-2020 Kawahara Lab., Kyoto University Copyright (c) 2005-2020 Julius project team, Lee Lab., Nagoya Institute of Technology Copyright (c) 1997-2000 Information-technology Promotion Agency, Japan Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology
    • ライセンスは JuliusSharp/julius/LICENSE に含まれています。
  • Julius 日本語ディクテーションキット
    • このリポジトリには含まれません。
    • Copyright (c) 1991-2019 Kawahara Lab., Kyoto University Copyright (c) 2005-2019 Lee Lab., Nagoya Institute of Technology
    • 利用許諾書

サンプルで利用しているもの

対応プラットフォーム

今現在は、次のプラットフォームにのみ対応しています。

  • Windows - x64
  • Windows - Unity x64

フォルダ構成

フォルダ / ファイル名 内容
JuliusSharp JuliusSharp ライブラリ本体のあるフォルダ
  └ julius 大規模語彙連続音声認識エンジン Julius 本体
dictation-kit Julius 日本語ディクテーションキット(ビルド過程で公式からクローンします。)
Sample サンプルコードのあるフォルダ
Sample_x64.sln Windows x64 用のサンプルソリューション
コンソールで動作し、ファイルから読み込んだサンプル音声をテキスト化します。
Sample_Unity.sln Windows Unity 用のサンプルソリューション
Unity で動作し、ファイルから読み込んだサンプル音声をテキスト化します。

事前準備

ビルドに必要な環境

  • Windows
  • VisualStudio 2022 ― サンプルに対応したワークロード
ソリューション 内容 必要なワークロード
Sample_x64.sln Windows - x64 C++ によるデスクトップ開発
.NET デスクトップ開発
Sample_Unity.sln Windows - Unity x64 C++ によるデスクトップ開発
.NET デスクトップ開発
Unity によるゲーム開発

サンプルビルドの準備

このリポジトリをクローンしたら、次の手順でセットアップを行ってください。

  1. Julius 日本語ディクテーションキットをクローン
    JuliusSharp/bin/dictation-kit-download.bat を実行すると、dictation-kit フォルダに Julius 日本語ディクテーションキットがクローンされます。
    ※ Git LFS が必要です。

  2. Unity サンプルをビルドする場合は、UnityEngine.CoreModule.dll を配置
    JuliusSharp/JuliusSharp/UnityDLL フォルダを作成し、 UnityEngine.CoreModule.dll を配置してください。

サンプルのビルド

ビルドターゲット

Debug 最適化なし
Release 最適化あり

Sample_x64.sln のビルド

  1. ソリューションを VisualStudio2022 で開く
  2. Sample_x64 プロジェクトを スタートアップ プロジェクトに設定
  3. ビルド

Sample_Unity.sln のビルド

1. Unity アセットの作成

  1. ソリューションを VisualStudio2022 で開く
  2. UnitySetup プロジェクトを スタートアップ プロジェクトに設定
  3. ビルド
Unity では下記のようにコピーに失敗してエラーになる場合があるので、Unity を終了して行ってください。

image

2. Unity での実行

  1. Unity 起動
  2. Assets/Scenes/SampleScene.unity シーンを開いて実行

JuliusSharp 解説

JuliusSharpp 構成物

dictation-kit Julius 対応の日本語ディクテーションツールキットです。
JuliusSharpBridge.dll C 言語で構築された Julius を C# での利用できるようにするための dll です。
サンプルをビルドすると以下のいづれかのフォルダに作成されます。
- _build/x64_Debug_dll
- _build/x64_Release_dll
JuliusSharp.dll JuliusSharpBridge.dll を利用し、C# で使いやすくシステム化した dll です。
サンプルをビルドすると以下のいづれかのフォルダに作成されます。
- _build/x64_Debug_dll
- _build/x64_Release_dll
- _build/unity_Debug_dll
- _build/unity_Release_dll

JuliusSharp の使い方

JuliusSystem クラスがメインシステムで、このクラスを利用して音声認識を行います。
このクラスの使い方は Sample/x64/Program.cs を参照してください。

音声認識システム起動オプション

音声認識システムの挙動は、JuliusSharp.Start 関数に指定するオプションによって変更することができます。

KitRoot ディクテーションキットのディレクトリパスを指定
サンプルではビルド時に以下の場所に配置されたものを利用しています。
Sample_x64 サンプル実行ファイルの出力先フォルダ
Sample_Unity Sample/Unity/Assets/StreamingAssets/JuliusSharp
※ Unity の場合、Assets/StreamingAssets 以下である必要があります。
Quality 音声認識のクオリティを指定します。
クオリティごとに実行時に不要なリソース ( dictation-kit フォルダ以下のデータ ) もありますので、必要に応じて削除することも可能です。
JuliusSystemQuality.HighQuality 処理負荷は高いが高精度
* 不要なリソース
- m-gmm.jconf
JuliusSystemQuality.LowQuality 処理は軽いが精度が低い
* 不要なリソース
- m-dnn.jconf
- julius.dnnconf
- model/dnn フォルダ以下
Log ログの出力方法を指定します。
JuliusSystemLog.Console コンソールにログを出力
JuliusSystemLog.None ログを出力しない

認識可能な音声

  • サンプリング数 16KHz
  • モノラル

※ サンプルで利用しているデータ(*.wav.raw)は ffmpeg で変換し、ヘッダーを除いてます。(ffmpeg はリポジトリに含まれません。)

About

音声認識システム Julius を C# で利用できるようにしたライブラリ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published