少し前に、日本語を読み上げさせたくて調べた事がありました。
その時は、下の2種類を発見しました。
・OpenEars(フリーのiOS向け音声認識/音声合成ライブラリ
・N2 (KDDI研究所の音声合成ソフトウェア)
前者で実装してみたのですが、先輩方がアップして下さっている
ソースをコピペしてみるも、コンパイルエーラー多数で動かず。
エラーを取り除いて見ても、発話せず・・・。
後者は、販売価格30万円~と高額。
さらに、アプリ配布にロイヤリティが発生すると言う事で貧乏人には論外。
すぐ欲しかったわけではないので、ペンディング状態でした。
しかし、たまたま「webりーだー」というウェブの読み上げアプリを発見しました。
https://itunes.apple.com/jp/app/webrida-yin-sheng-dumi-shanggeburauza/id485960506?mt=8
OpenEarsは日本語対応してなかったはずですが、webりーだーでは日本語もなかなか。
N2を使ってるのか?と思ったのですがフリーアプリ。
絶対何かあるはずだと調べたところ、発見しました!!
iOS7で沢山の魅力的なAPIが追加されていたのですね。
情報収集不足でした。
以下のサイトで、詳しく紹介されていました。
http://qiita.com/shu223/items/3d139133c9116f115d59
Speech Synthesisを利用すれば、超簡単に実装ができました。
新規でプロジェクトを作成して以下、3ステップだけ。
①フレームワークの追加
Linked Frameworks and Libraries に AVFoundation.framework を追加する
②***.h ファイルの編集
■追加
#import <AVFoundation/AVFoundation.h>
③***.m ファイル編集(起動時に喋らせる場合)
■編集
-(void)viewDidLoad { [super viewDidLoad]; // AVSpeechSynthesizerを初期化する。 AVSpeechSynthesizer* speechSynthesizer = [[AVSpeechSynthesizer alloc] init]; // AVSpeechUtteranceを読ませたい文字列で初期化する。 NSString* speakingText = @"昔、昔、ある所に、おじいさんとおばあさんが住んでいました。"; AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:speakingText]; // 日本語voiceをAVSpeechUtteranceに指定。 AVSpeechSynthesisVoice* JVoice = [AVSpeechSynthesisVoice voiceWithLanguage:@"ja-JP"]; utterance.voice = JVoice; // 読むスピード(1.0fが最高速) utterance.rate = 0.35f; // AVSpeechSynthesizerにAVSpeechUtteranceを設定してスピーチ開始 [speechSynthesizer speakUtterance:utterance]; }
以上!と、凄く簡単に完成しました。
あの時、時間やお金を使わなくて本当に良かった。
KDDI研究所さん、残念ですねw
他にも、面白そうなAPI追加されてますので、また必要になった時に試してみましょう。