溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么給textView添加語音輸入功能

發布時間:2021-07-10 12:00:16 來源:億速云 閱讀:219 作者:小新 欄目:移動開發

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

效果展示:

怎么給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添加語音輸入功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女