標籤:use int sso var 是什麼 voice 學習 範圍 minimum
前言
當前的APP的查詢都是使用手動輸入,不僅效率低,而且查詢的語句的限制比較大,不能夠方便的擴充。 如果能方便的擴充查詢語句,那麼APP的使用就會有很大的靈活性。可以設計各種問句和語句,可以方便的和使用者進行互動。在這裡使用了olami平台提供的語音平台介面,很方便的實現了查詢語句的擴充,而且可以返回需要的結果。同時,Olami平台也提供了完整的語音辨識功能,再結合iOS 提供的AVSpeechSynthesis介面,就可以實現一套類似Siri的智能語音查詢詩句的APP
APP功能介紹
這是一個查詢《唐詩三百首》、《宋詞三百首》、《元曲三百首》的詩歌學習APP,可以查詢名字查詢詩歌,可以通過詩人查詢詩歌,可以通過詩詞查詢是哪一首,可以查詢唐代有哪些詩人,這些詩人的代表作是什麼。並通過語音讀出來
通過詩人查詢代表作,點擊可以顯示詩歌
通過詩歌名稱查詢
通過詩句查詢詩歌
通過詩句查詢詩人
功能的實現
語音辨識和語義理解都是通過Olami平台來實現的。這個需要去Olami平台進行註冊,然後就可以免費試用了。官網的地址https://olami.ai,網站上有豐富的教學資源具體的使用可以查看相關的文檔,也可以查詢我的前幾篇部落格
定義的語句大部分都是查詢的:例如
落花時節又逢君出自哪首詩
你會背李白的詩嗎
元代的詩人有哪些
唐朝有哪些詩人
唐朝詩人李白的主要作品有哪些
李商隱的詩
語音的讀取是使用了蘋果的AVSpeechSynthesis庫進行的。這個庫的使用也很簡單。這個庫是在AVFoundation中
#import<AVFoundation/AVFoundation.h>
使用了兩個類
AVSpeechSynthesizerAVSpeechUtterance
AVSpeechSynthesizer *av= [[AVSpeechSynthesizer alloc]init];av.delegate=self;//掛上代理AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"你好!"];//需要轉換的文字 utterance.rate=0.5;// 設定語速,範圍0-1,注意0最慢,1最快;AVSpeechUtteranceMinimumSpeechRate最慢,AVSpeechUtteranceMaximumSpeechRate最快 AVSpeechSynthesisVoice*voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-TW"];//設定發音,這是中文普通話 utterance.voice= voice;[av speakUtterance:utterance];//開始
AVSpeechSynthesizer定義了一些回調代理,可以偵測一些狀態
- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didStartSpeechUtterance:(AVSpeechUtterance*)utterance{ NSLog(@"---開始播放");}- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance*)utterance{ NSLog(@"---完成播放");}- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didPauseSpeechUtterance:(AVSpeechUtterance*)utterance{ NSLog(@"---播放中止");}- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didContinueSpeechUtterance:(AVSpeechUtterance*)utterance{ NSLog(@"---恢複播放");}- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didCancelSpeechUtterance:(AVSpeechUtterance*)utterance{ NSLog(@"---播放取消");}
語音辨識完成詩句的查詢功能,iOS AVSpeechSynthesis語音輸出結果的詩歌APP