強火で進め このページをアンテナに追加 RSSフィード

整理された情報は こちら へどうぞ。

2014年04月14日

[][] Unity 上に日本語のテキスト読み上げ機能を簡単に実装する(Mac限定)

D

TL上で Unity 上でテキスト読み上げ機能の要望が上がっていたのでちょっと簡単に実装可能か色々調査していたところ、 Twitter 上で System.Diagnostics.Process を使うというアイディアを教えて貰いました。

System.Diagnostics.Process はコマンドラインから実行するのと同等の処理を行える API (C言語の system() の様なもの)です。

Mac の場合にはこのAPIを使って say コマンドを呼び出し、喋らせる事が可能です。

早速、使い方を検索してみた所、Unity では以下のページに書かれている方法で実現可能でした。Macのアプリにしても動作しました。

Run unix executable file from Unity

http://forum.unity3d.com/threads/40475-Run-unix-executable-file-from-Unity

こちらの方法は Web Player 版では動作しません。そもそもエラーが出てビルド出来ません。

まぁ、 Web からローカルのデータを自由に触れちゃうのでセキュリティ的に許可してる訳ないですよね。

以下のコードでテキストフィールドに入力された内容を読み上げる事が出来ます。

using UnityEngine;
using System.Collections;
using System.Diagnostics;

public class Test : MonoBehaviour {
	
	private string talk_text = "こんにちは";
	
	void OnGUI() {
		talk_text = GUI.TextField(new Rect(5, 5, 200, 20), talk_text);
		if (GUI.Button(new Rect(5, 30, 200, 50), "test")) {
			Process process = new Process();
			process.StartInfo.FileName="say";
			process.StartInfo.Arguments = talk_text;
			process.StartInfo.RedirectStandardError=true;
			process.StartInfo.RedirectStandardOutput=true;
			process.StartInfo.CreateNoWindow=true;
			process.StartInfo.WorkingDirectory=Application.dataPath+"/..";
			process.StartInfo.UseShellExecute=false;
			process.Start();
		}
	}
}

プロジェクトはこちらにアップして有ります。

テストする場合には日本語の声に変更してから実行して下さい。変更方法はこちらを参照下さい。

なお、こちらのページによると Mac のこの機能のライセンスは以下の様に成ってるみたいです。

Voices Subject to the terms and conditions of this License, you may use the system voices included in the Apple Software (“System Voices”) (i) while running the Apple Software and (ii) to create your own original content and projects for your personal, non-commercial use. No other use of the System Voices is permitted by this License, including but not limited to the use, reproduction, display, performance, recording, publishing or redistribution of any of the System Voices in a profit, non-profit, public sharing or commercial context.

こちらの記事でも少しだけ言及されています。

Macで利用可能で低価格でアプリに組み込んで商用利用な日本語音声合成エンジン(TTS)が有れば商用作品もつくれるんですけどどこか出さないですかねぇ? 例えはクリプトンさんとか!!

[] Mac の読み上げ機能で日本語音声を使う方法

Mac では Lion から、 Kyoko という女性の声での日本語の読み上げが可能に成りました。また、 Mavericks からは Otoya という男性の声も使える様に成りました。

使い方はこちらの記事を参照下さい。

Mavericks新機能:テキスト入力と読み上げの精度に感涙|Mac

http://weekly.ascii.jp/elem/000/000/182/182316/

[][] Unity の中の人も参加して作成された 2D ゲーム「Make Believe」(ソースコードも公開)

先日の Unite でも講演された Unity の中の人、 Veli-Pekka さんが参加されたチームで作成された作品。 Global Game Jam で作成された様です。 Unity 4.3 から追加された 2D 機能を使って実装されているのでその辺りの勉強をするのにも良いゲームです。

D

【 Web Player 版】
http://goo.gl/cFlBlV

ソースコード
http://goo.gl/2dIY9Z

【 Global Game Jam 2014 の作品ページ】
http://globalgamejam.org/2014/games/make-believe

[][] ARM によるセッション「Optimizing Unity Games for Mobile Platforms」のスライド

Unite 2013 (去年開催)のバンクーバー会場で行われた ARM によるモバイル最適化手法についてのスライド。 Profiler.BeginSample() や Profiler.EndSample() なんて API 有ったんですね。