From bdf7a85895a0c4bc4f559289bdc0bf271de98ad9 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Mon, 25 Sep 2023 19:54:23 -0400 Subject: [PATCH] Fixes for iOS 17. Updated the log events. Also, it seems the final update from the speech recognizer is now empty so ignore an empty result in the final result. --- .DS_Store | Bin 0 -> 6148 bytes ListenerGS.xcodeproj/project.pbxproj | 2 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 38119 bytes .../xcschemes/xcschememanagement.plist | 15 ------------ ListenerGS/GSConnection.swift | 20 ++++++++-------- ListenerGS/Info.plist | 4 ++-- ListenerGS/SpeechForwarder.swift | 22 +++++++++--------- 7 files changed, 25 insertions(+), 38 deletions(-) create mode 100644 .DS_Store create mode 100644 ListenerGS.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2b4c0473777215c3babf9405d43e10b755cca254 GIT binary patch literal 6148 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 SuppressBuildableAutocreation - 9D5155EE26A1EF7B0075EBC7 - - primary - - - 9D5155FF26A1EF7C0075EBC7 - - primary - - - 9D51560A26A1EF7C0075EBC7 - - primary - - 9D62FC5F27C494D700AEE01F primary diff --git a/ListenerGS/GSConnection.swift b/ListenerGS/GSConnection.swift index c6c1c94..149c19b 100644 --- a/ListenerGS/GSConnection.swift +++ b/ListenerGS/GSConnection.swift @@ -104,7 +104,7 @@ class GSConnection : ObservableObject { } if (!legalTransition) { - logger.error("Illegal requested state transition from \(oldState) to \(newState)") + logger.error("Illegal requested state transition from \(oldState, privacy: .public) to \(newState, privacy: .public)") errorOccurred(title: "Bad State Change", message: "Illegal state transition from \(oldState) to \(newState)") } else { state = newState @@ -126,14 +126,14 @@ class GSConnection : ObservableObject { private func connectionSuccessful() { changeState(newState:.connected) - logger.debug("Connected to \(self.destination)") + logger.debug("Connected to \(self.destination, privacy: .public)") } func connect(destination : String) { self.destination = destination changeState(newState: .connecting) readQueue.addOperation { [weak self, destination] in - self?.logger.debug("Attempting to connect to \(destination)") + self?.logger.debug("Attempting to connect to \(destination, privacy: .public)") let client = TCPClient(address: destination, port: Int32(GSConnection.port)) switch client.connect(timeout: 10) { case .success: @@ -143,7 +143,7 @@ class GSConnection : ObservableObject { } case .failure(let error): client.close() - self?.logger.error("Failed to connect to \(destination): \(String(describing: error))") + self?.logger.error("Failed to connect to \(destination, privacy: .public): \(String(describing: error), privacy: .public)") self?.mainQueue.addOperation { self?.connectionFailed() } @@ -171,13 +171,13 @@ class GSConnection : ObservableObject { self.trySend() } } else { - self.logger.error("Unexpected message on socket from \(destination)") + self.logger.error("Unexpected message on socket from \(destination, privacy: .public)") self.errorOccurred(title: "Protocol Error", message: "Unexpected message from the GS") break } } catch { - self.logger.error("Unable to unpack message on socket from \(destination)") + self.logger.error("Unable to unpack message on socket from \(destination, privacy: .public)") self.errorOccurred(title: "Protocol Error", message: "Unexpected message from the GS") break } @@ -230,7 +230,7 @@ class GSConnection : ObservableObject { case .success: break case .failure(let error): - self.logger.error("Unable to send header: \(String(describing: error))") + self.logger.error("Unable to send header: \(String(describing: error), privacy: .public)") return false } @@ -319,14 +319,14 @@ class GSConnection : ObservableObject { case .success: switch (client.send(data: bytes)) { case .success: - logger.debug("Sent text \"\(stringToSend)\"") + logger.debug("Sent text \"\(stringToSend, privacy: .public)\"") break case .failure(let error): mainQueue.addOperation { self.errorOccurred(title: "Write Error", message: "Unable to send text to the GS") self.disconnect() } - logger.error("Failed to send text: \(String(describing: error))") + logger.error("Failed to send text: \(String(describing: error), privacy: .public)") return false } case .failure(let error): @@ -334,7 +334,7 @@ class GSConnection : ObservableObject { self.errorOccurred(title: "Write Error", message: "Unable to send text to the GS") self.disconnect() } - logger.error("Failed to send text: \(String(describing: error))") + logger.error("Failed to send text: \(String(describing: error), privacy: .public)") } } return true diff --git a/ListenerGS/Info.plist b/ListenerGS/Info.plist index e4dec6f..ecb41b1 100644 --- a/ListenerGS/Info.plist +++ b/ListenerGS/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.0 + 1.0.1 CFBundleVersion - 794 + 807 LSApplicationCategoryType public.app-category.utilities LSRequiresIPhoneOS diff --git a/ListenerGS/SpeechForwarder.swift b/ListenerGS/SpeechForwarder.swift index da93e98..7f01084 100644 --- a/ListenerGS/SpeechForwarder.swift +++ b/ListenerGS/SpeechForwarder.swift @@ -82,7 +82,7 @@ class SpeechForwarder : SpeechForwarderProtocol { // Configure the microphone input. let inputFormat = inputNode.outputFormat(forBus: 0) let speechFormat = recognitionRequest.nativeAudioFormat - logger.debug("Recording format \(inputFormat), speech format \(speechFormat)") + logger.debug("Recording format \(inputFormat, privacy: .public), speech format \(speechFormat, privacy: .public)") var formatConverter: AVAudioConverter? if (!inputFormat.isEqual(speechFormat)) { formatConverter = AVAudioConverter(from:inputFormat, to: speechFormat) @@ -114,17 +114,17 @@ class SpeechForwarder : SpeechForwarderProtocol { recognitionTask = speechRecognizer.recognitionTask(with: recognitionRequest) { [weak connection] result, error in var isFinal = false - if let result = result { - // Update the text view with the results. - OperationQueue.main.addOperation { - guard let connection = connection else { return } - connection.set(text: result.bestTranscription.formattedString) - } - isFinal = result.isFinal - } - if error != nil { - self.logger.error("Error from recognizer: \(String(describing: error))") + self.logger.error("Error from recognizer: \(String(describing: error), privacy:.public)") + } else if let result = result { + isFinal = result.isFinal + if !isFinal || result.bestTranscription.formattedString != "" { + // Update the text view with the results. + OperationQueue.main.addOperation { + guard let connection = connection else { return } + connection.set(text: result.bestTranscription.formattedString) + } + } } if error != nil || isFinal {