本文主要介紹的是利用科大訊飛技術實現語音轉文字的功能(語音聽寫).
首先,註冊訊飛賬號,申請APPID
然後,下載科大訊飛SDK將開發工具包中lib目錄下的iflyMSC.framework添加到新建工程中.
按下圖添加SDK所需要的iOS庫。(除iflyMSC.framework,iflyMSC.framework是拖進去的)
接着,在appDelegate中引入頭文件
#import “iflyMSC/IFlyRecognizerViewDelegate.h”
#import “iflyMSC/IFlyRecognizerView.h”
寫上代碼
NSString *appid = @"********";//自己申請的appId
NSString *initString = [NSString stringWithFormat:@"appid=%@",appid];
[IFlySpeechUtility createUtility:initString];
在相應的viewController裏:
遵守協議<IFlyRecognizerViewDelegate>
@property (nonatomic,strong)IFlyRecognizerView *iflyRecognizerView;
- (void)viewDidLoad {
[super viewDidLoad];
self.iflyRecognizerView = [[IFlyRecognizerView alloc]initWithCenter:self.view.center];
self.iflyRecognizerView.delegate = self;
[self.view addSubview:self.iflyRecognizerView];
[self.iflyRecognizerView setParameter: @"iat" forKey:[IFlySpeechConstant IFLY_DOMAIN]];
//asr_audio_path保存錄音文件名,默認目錄是documents
[self.iflyRecognizerView setParameter: @"asrview.pcm" forKey:[IFlySpeechConstant ASR_AUDIO_PATH]];
//設置返回的數據格式爲默認plain
[self.iflyRecognizerView setParameter:@"plain" forKey:[IFlySpeechConstant RESULT_TYPE]];
[self startListenning:self.iflyRecognizerView];//可以建一個按鈕,點擊按鈕調用此方法
}
- (void)startListenning:(id)sender{
[self.iflyRecognizerView start];
NSLog(@"開始識別");
}
//返回數據處理
- (void)onResult:(NSArray *)resultArray isLast:(BOOL)isLast
{
NSMutableString *result = [NSMutableString new];
NSDictionary *dic = [resultArray objectAtIndex:0];
NSLog(@"DIC:%@",dic);
for (NSString *key in dic) {
[result appendFormat:@"%@",key];
}
//把相應的控件賦值爲result.例如:label.text = result;
}
- (void)onError:(IFlySpeechError *)error
{
}
這樣就實現了利用科大訊飛語音轉文字的功能.