2014-09-28 53 views
2

我在使用iOS 8.0.2和XCode 5上的AVSpeechSynthesis时遇到了问题。我在模拟器上试了一下,发现“语音初始化错误:2147483665”。然后我在iPhone 5上试了一下,没有发现任何错误,但没有发言。AVFoundation语音合成iOS 8和XCode 6

在我的.h文件我输入

进口

,并有@property(强,非原子)AVSpeechSynthesizer *合成;

在我的.m文件我合成的合成

我有AVFoundation在我的框架中引用

在我viewDidLoad中我下面

self.synthesizer = [[AVSpeechSynthesizer的alloc]初始化] ; self.synthesizer.delegate = self;

后来在我的代码来控制什么是说我下面

AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:dialog]; 
utterance.rate = AVSpeechUtteranceDefaultSpeechRate; 
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-au"]; 
[self.synthesizer speakUtterance:utterance]; 

我有CCViewController:的UIViewController在我的视图控制器。

有谁知道什么是错的? AVFoundation是否适用于iOS 8?

我看到一个类似的帖子在堆栈溢出说,以初始化我的发言@“”,但没有奏效。

任何帮助,将不胜感激。

感谢, 格雷格

+0

8.1模拟器不做TTS。下载7.1模拟器并将其用于测试。 – vijayst 2014-11-06 07:45:06

回答

2

你有什么应该有一个小的调整工作,我认为(见下文),但只有一个设备,而不是在模拟器上。当我尝试运行您的代码或代码时,我在模拟器中使用了AVSpeachUtterance,我复制了相同的错误消息。不知道这是一个错误还是只是模拟器的限制。为了使事情正常工作,请尝试注释掉该行:

utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-au"]; 

它是否工作呢?如果没有这行代码,我们在iPhone 5(8.0.2)上应该能够正常工作,但是如果我使用这里显示的任何代码语言代码(What are the BCP-47 voice codes available for iOS 7 AVSpeechSynthesisVoice?),则不会使用任何文本。当我明确地设置语言时,我可以让事情起作用的唯一方法是使用@“en-GB”,这也是手机在设置中配置的语言。如果我在设置中更改手机的语言,则可以使用其他语言代码,例如美国英语和@“en-US”。

作为工作的通知你,所需虚拟文本的初始位@错误,即”“把事情似乎被固定在8.0.2

+1

我尝试了这种评论声音的方法。但是,它没有奏效。 – vijayst 2014-11-04 05:23:50