這篇文章將為大家詳細講解有關怎么給textView添加語音輸入功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
效果展示:

功能實現,sdk中提供了兩種方式,一種是帶界面的語音識別,有一個識別語音的動畫的界面效果。另一種是無界面的。我這里使用的是帶界面的,不帶界面的自己可以去看一下,大同小異
第一步:去訊飛開發者平臺注冊賬號、創建應用、下載SDK、拖入項目
第二步:添加依賴庫
libz.tbd AVFoundation.framework SystemConfiguration.framework Foundation.framework CoreTelephony.framework AudioToolbox.framework UIKit.framework AddressBook.framework CoreLocation.framework CoreGraphics.framework
第三步:AppDelegate配置
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//存儲路徑
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = [paths objectAtIndex:0];
[IFlySetting setLogFilePath:cachePath];
//創建語音配置,appid必須要傳入,僅執行一次則可
NSString *initString = [[NSString alloc] initWithFormat:@"appid=%@",@"你的appid"];
//所有服務啟動前,需要確保執行createUtility
[IFlySpeechUtility createUtility:initString];
}第四步:把demo里的ISRDataHelper.h及.m文件拖入項目中
第五步:控制器代碼
1、引用頭文件
#import "iflyMSC/IFlyMSC.h" #import "ISRDataHelper.h"
2、初始化_iflyRecognizerView
//有界面
-(void)initRecognizer{
//單例模式,UI的實例
if (_iflyRecognizerView == nil) {
//UI顯示劇中
_iflyRecognizerView= [[IFlyRecognizerView alloc] initWithCenter:self.view.center];
[_iflyRecognizerView setParameter:@"" forKey:[IFlySpeechConstant PARAMS]];
//設置聽寫模式
[_iflyRecognizerView setParameter:@"iat" forKey:[IFlySpeechConstant IFLY_DOMAIN]];
}
_iflyRecognizerView.delegate = self;
if (_iflyRecognizerView != nil) {
//設置最長錄音時間
[_iflyRecognizerView setParameter:@"30000" forKey:[IFlySpeechConstant SPEECH_TIMEOUT]];
//設置后端點 3000
[_iflyRecognizerView setParameter:@"3000" forKey:[IFlySpeechConstant VAD_EOS]];
//設置前端點 3000
[_iflyRecognizerView setParameter:@"3000" forKey:[IFlySpeechConstant VAD_BOS]];
//設置采樣率,推薦使用16K 16000
[_iflyRecognizerView setParameter:@"16000" forKey:[IFlySpeechConstant SAMPLE_RATE]];
// if ([instance.language isEqualToString:[IATConfig chinese]]) {
// //設置語言 zh_cn
[_iflyRecognizerView setParameter:@"zh_cn" forKey:[IFlySpeechConstant LANGUAGE]];
// //設置方言 mandarin
[_iflyRecognizerView setParameter:@"mandarin" forKey:[IFlySpeechConstant ACCENT]];
// }else if ([instance.language isEqualToString:[IATConfig english]]) {
// //設置語言
// [_iflyRecognizerView setParameter:instance.language forKey:[IFlySpeechConstant LANGUAGE]];
// }
// //設置是否返回標點符號 0
[_iflyRecognizerView setParameter:@"1" forKey:[IFlySpeechConstant ASR_PTT]];
}
}3、按鈕點擊響應
-(void)startBtn{
if (_iflyRecognizerView == nil) {
[self initRecognizer ];
}
//設置音頻來源為麥克風
[_iflyRecognizerView setParameter:IFLY_AUDIO_SOURCE_MIC forKey:@"audio_source"];
//設置聽寫結果格式為json
[_iflyRecognizerView setParameter:@"plain" forKey:[IFlySpeechConstant RESULT_TYPE]];
//保存錄音文件,保存在sdk工作路徑中,如未設置工作路徑,則默認保存在library/cache下
[_iflyRecognizerView setParameter:@"asr.pcm" forKey:[IFlySpeechConstant ASR_AUDIO_PATH]];
[_iflyRecognizerView start];
}4、代理方法,結果解析
- (void)onResult:(NSArray *)resultArray isLast:(BOOL)isLast
{
NSMutableString *result = [[NSMutableString alloc] init];
NSDictionary *dic = [resultArray objectAtIndex:0];
for (NSString *key in dic) {
[result appendFormat:@"%@",key];
}
self.textField.text =[NSString stringWithFormat:@"%@%@",_textField.text,result];
[_iflyRecognizerView cancel];
}
- (void)onError: (IFlySpeechError *) error
{
NSLog(@"識別出錯");
}關于“怎么給textView添加語音輸入功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。