2013-12-09 2 views
5

Я играл с добавлением речевых сигналов в свое приложение и тестировал AVSpeechUtterance в iOS 7, но частота речевого сигнала по умолчанию ДЕЙСТВИТЕЛЬНО быстрая. Минимальная скорость речи намного понятнее. Но максимальное значение громкости 1 равносильно спокойному! Я тестировал его на своем iPhone 4, и объем был полностью перевернут. Что-то должно быть не так, или как это вообще можно было бы использовать.AVSpeechUtterance максимальный объем действительно тихий и скорость действительно быстрая

AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init]; 
      NSString *mystring = [NSString stringWithFormat:@"Talk String Here %@",myObject.name]; 
      AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:mystring]; 
      [utterance setRate:AVSpeechUtteranceMinimumSpeechRate]; 
      [utterance setVolume:1]; 
      [synthesizer speakUtterance:utterance]; 
+1

ли вы когда-нибудь найти решение для этого? Я испытываю ту же проблему с объемом. – Glavin001

+0

Нет, я этого не делал, но я также не работал над этим. Не похоже, что было хорошее решение. – tettoffensive

+0

Я отправил то, что сработало для меня ниже (http://stackoverflow.com/a/28922543/2578205). Может быть, это поможет? – Glavin001

ответ

-1

Ставка - это просто значение поплавка, а константы предусмотрены для удобства. Попробуйте использовать [произнесение setRate: AVSpeechUtteranceMaximumSpeechRate * .25];

+0

'rate' уже является значением с плавающей точкой с диапазоном от 0.0 до 1.0 с' AVSpeechUtteranceMinimumSpeechRate' = 0.0 и 'AVSpeechUtteranceMaximumSpeechRate' = 1.0. Поскольку 'AVSpeechUtteranceMinimumSpeechRate' равен 0.0, умножение его на любое число равно 0.0. –

4

@ пост TMR в here решить это для меня:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 
         withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker 
             error:nil]; 
+0

Вы просто спасли меня много времени! Благодаря! –

+0

Спасибо за помощь. Это сработало отлично. –

+0

Все еще это не работает для меня :( – Abha

0

IOS 8 отличается для прошивки 9:

AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:utteranceString]; 
if([iOSVersionDetector isiOS9OrHigher]) 
    utterance.rate = AVSpeechUtteranceDefaultSpeechRate; 
else 
    utterance.rate = 0.1f; 
0

Для Swift 3 сделать (чтобы решить проблему объема)

let audioSession = AVAudioSession.sharedInstance() 
try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: AVAudioSessionCategoryOptions.defaultToSpeaker) 
3

Это сработало для меня (Swift 3.0)

let audioSession = AVAudioSession.sharedInstance() 
do { 
    try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: AVAudioSessionCategoryOptions.defaultToSpeaker) 
} catch { 
    print("audioSession properties weren't set because of an error.") 
} 
0

Моя проблема была решена установкой режима на AVAudioSessionModeDefault или AVAudioSessionModeSpokenAudio:

let audioSession = AVAudioSession.sharedInstance() 
try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: .defaultToSpeaker) 
try audioSession.setMode(AVAudioSessionModeSpokenAudio) 
Смежные вопросы