1
A
回答
2
AVSpeechSynthesizer Class Reference可從iOS7獲取。文檔非常好。請務必將AVFoundation框架鏈接到您的項目。
這裏是一個工作的例子,講文本從的UITextField進入時的UIButton被點擊 - (假設名爲YOURViewController一個UIViewController子類)中的.h
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface YOURViewController : UIViewController <AVSpeechSynthesizerDelegate, UITextFieldDelegate> {
IBOutlet UITextField *textFieldInput;// connect to a UITextField in IB
}
- (IBAction)speakTheText:(id)sender;// connect to a UIButton in IB
@end
and in .m
#import "YOURViewController.h"
@interface YOURViewController()
@end
@implementation YOURViewController
- (IBAction)speakTheText:(id)sender {
// create string of text to talk
NSString *talkText = textFieldInput.text;
// convert string
AVSpeechUtterance *speechUtterance = [self convertTextToSpeak:talkText];
// speak it...!
[self speak:speechUtterance];
}
- (void)viewDidLoad {
[super viewDidLoad];
}
- (AVSpeechUtterance*)convertTextToSpeak:(NSString*)textToSpeak {
AVSpeechUtterance *speechUtterance = [[AVSpeechUtterance alloc] initWithString:textToSpeak];
speechUtterance.rate = 0.2; // default = 0.5 ; min = 0.0 ; max = 1.0
speechUtterance.pitchMultiplier = 1.0; // default = 1.0 ; range of 0.5 - 2.0
speechUtterance.voice = [self customiseVoice];
return speechUtterance;
}
- (AVSpeechSynthesisVoice*)customiseVoice {
NSArray *arrayVoices = [AVSpeechSynthesisVoice speechVoices];
NSUInteger numVoices = [arrayVoices count];
AVSpeechSynthesisVoice *voice = nil;
for (int k = 0; k < numVoices; k++) {
AVSpeechSynthesisVoice *availCustomVoice = [arrayVoices objectAtIndex:k];
if ([availCustomVoice.language isEqual: @"en-GB"]) {
voice = [arrayVoices objectAtIndex:k];
}
// This logs the codes for different nationality voices available
// Note that the index that they appear differs from 32bit and 64bit architectures
NSLog(@"#%d %@", k, availCustomVoice.language);
}
return voice;
}
- (void)speak:(AVSpeechUtterance*)speechUtterance {
AVSpeechSynthesizer *speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
speechSynthesizer.delegate = self;// all methods are optional
[speechSynthesizer speakUtterance:speechUtterance];
}
@end
相關問題
- 1. 在應用程序聲音中禁用
- 2. 的聲音在我的應用程序
- 3. 使用UILocalNotification播放不在應用程序包中的聲音
- 4. 在Web應用程序中使用HTML 5播放聲音
- 5. 在使用Javascript的iPhone Web應用程序中播放聲音?
- 6. 使Java應用程序中的聲音靜音
- 7. 當我的應用程序正在播放聲音時將其他應用程序的聲音靜音ios
- 8. 只在Android中運行的應用程序聲音靜音
- 9. 在Windows Phone 8.1應用程序中生成音調或聲音
- 10. iOS:應用程序聲音中使用的音頻文件比在應用程序外播放時要嚴格
- 11. 在android應用程序中執行嗶聲聲音
- 12. 使用ui開關關閉應用程序中的聲音xcode
- 13. 添加聲音到OpenGL應用程序
- 14. iPhone應用程序的聲音字節
- 15. 爲Android應用程序設置聲音
- 16. 音板應用程序鈴聲
- 17. Android應用程序聲音免費
- 18. flex控制應用程序聲音
- 19. 應用程序的聲音剪輯?
- 20. iPhone應用程序聲音識別?
- 21. 使用ffmpeg轉換聲音文件以便在Android應用程序中使用
- 22. 在我的iPhone應用程序中使用多個聲音使用Cocos2d
- 23. 如何在另一個應用程序中響應聲音?
- 24. 在黑莓的單一應用程序中禁用聲音
- 25. 使用應用程序時禁用通知聲音和振動
- 26. 當應用程序在後臺播放音頻或聲音
- 27. 音樂應用程序的錄音聲音
- 28. 在靜音模式下手動靜音Android應用程序中的聲音?
- 29. 使用Python實時程序聲音?
- 30. 使用數組,爲iTunes加載聲音到應用程序
https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVSpeechSynthesizer_Ref/Reference/Reference.html – Kevin
[如何以編程方式使用iOS語音合成器? (text to speech)](http://stackoverflow.com/questions/9939589/how-to-programmatically-use-ios-voice-synthesizers-text-to-speech) – MZimmerman6