Громкость в контроллере представления с меткой стала очень тихой даже при простой передаче текста из UITextView в UILabel.
Почти все работает отлично, не считая проблемы с объемом.
Файл класса речи:
import UIKit
import AVFoundation
class TextToSpeech {
private let synthesizer = AVSpeechSynthesizer()
var Rate: Float = AVSpeechUtteranceDefaultSpeechRate
var Voice = AVSpeechSynthesisVoice(language: "en-US")
func Say(_ phrase: String) {
let Utterance = AVSpeechUtterance(string: phrase)
Utterance.rate = Rate
Utterance.voice = Voice
synthesizer.speak(Utterance)
}
}
Контроллер преобразования текста в речь:
import UIKit
import AVFoundation
class TextToSpeechTest: UIViewController {
let speak = TextToSpeech()
let label = UILabel()
override func viewDidLoad(){ super.viewDidLoad()
speak.Say(label.text!)
}
}
Речевой текстовый контроллер:
import UIKit
import AVFoundation
import Speech
class SpeechToText: UIViewController {
let textView = UITextView()
let audioEngine = AVAudioEngine()
let speechRecognizer: SFSpeechRecognizer? = SFSpeechRecognizer()
let request = SFSpeechAudioBufferRecognitionRequest()
var recognitionTask: SFSpeechRecognitionTask?
let speechToTextButton = UIButton()
let textToSpeechButton = UIButton()
func recordAndConvertSpeech() {
let node = audioEngine.inputNode
let recordingFormat = node.outputFormat(forBus: 0)
node.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) {
buffer, _ in self.request.append(buffer)
}
audioEngine.prepare()
do {
try audioEngine.start()
} catch {
return print(error)
}
guard let myRecognizer = SFSpeechRecognizer()
else { return }
if !myRecognizer.isAvailable { return }
recognitionTask = speechRecognizer?.recognitionTask(with: request, resultHandler: { result, error in
if let result = result {
let bestString = result.bestTranscription.formattedString
self.textView.text = bestString
} else if let error = error {
print(error)
}
})
}
@objc func speechToTextButton() {
recordAndConvertSpeech()
}
@objc func textToSpeechButton() {
let textToSpeechTest = TextToSpeechTest()
self.navigationController?.pushViewController(textToSpeechTest, animated: true)
textToSpeechTest.label.text = textView.text
}
}
Просто хочу, чтобы громкость была нормальной. Это было хорошо, прежде чем я добавил распознавание речи.