2016-12-23 5 views
-2

Momentan arbeite ich an einem Projekt, bei dem die Stimme des Benutzers eingegeben und in Echtzeit in Text konvertiert werden muss. Ich habe viele Beispielprojekte in JAVA Sphinx ausprobiert, aber ich habe Probleme mit dem Schreiben einer Grammatikdatei. Also, wenn es eine Möglichkeit gibt, dies in SWIFT3 zu tun, bitte hilf mir dabei?Umwandlung von Sprache in Text in Swift3

+1

Sie müssen [siehe] (https: //www.appcoda.com/siri-rede-framework /) this – iDeveloper

Antwort

2

Jetzt von der iOS10, Apple bietet die beste Lösung für dieses Problem für iOS-Entwickler. Jetzt können Sie Ihre App mit der SiriKIt, Tutoiral here integrieren. Seine alle Siri's Verantwortung den Text-to-Voice recognization und Vorteil der Verwendung dieses Kit zu verwalten ist, dass

  1. es mächtiger als die iOS-Versionen wird immer aktualisieren und wenn Sie diese integriert, gibt es keine müssen Sie Ihre Code-Arbeit ändern

  2. Ihre Codezeile ist auch weniger als zu Drittanbieter zu verwenden.

  3. Sie müssen das Kit nicht verwalten, wie Sie mit dritten, alle seine Apple-Pflicht, alles über SiriKit zu verwalten.

2

Hier ist ein Beispiel dafür, wie Sie SFSpeechRecognizer Stimme umwandeln können

Vor allem import Speech Rahmen in Ihrer .swift Datei in Text.

reagieren dann an den Delegaten SFSpeechRecognizerDelegate wie diese

public class ViewController: UIViewController, SFSpeechRecognizerDelegate { 

dann erklären die folgenden Eigenschaften

private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))! 

private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest? 

private var recognitionTask: SFSpeechRecognitionTask? 

private let audioEngine = AVAudioEngine() 

Nach dieser Dinge, stellen Sie sicher Zugang zu Speech recognition

nun diesen Code verwenden Sprache in Text umwandeln

let audioSession = AVAudioSession.sharedInstance() 
try audioSession.setCategory(AVAudioSessionCategoryRecord) 
try audioSession.setMode(AVAudioSessionModeMeasurement) 
try audioSession.setActive(true, with: .notifyOthersOnDeactivation) 

recognitionRequest = SFSpeechAudioBufferRecognitionRequest() 

guard let inputNode = audioEngine.inputNode else { fatalError("Audio engine has no input node") } 
guard let recognitionRequest = recognitionRequest else { fatalError("Unable to created a SFSpeechAudioBufferRecognitionRequest object") } 

// Configure request so that results are returned before audio recording is finished 
recognitionRequest.shouldReportPartialResults = true 

// A recognition task represents a speech recognition session. 
// We keep a reference to the task so that it can be cancelled. 
recognitionTask = speechRecognizer.recognitionTask(with: recognitionRequest) { result, error in 
    var isFinal = false 

    if let result = result { 

     //Here the the text of your voice 
     print(result.bestTranscription.formattedString) 
     isFinal = result.isFinal 
    } 

    if error != nil || isFinal { 
     self.audioEngine.stop() 
     inputNode.removeTap(onBus: 0) 

     self.recognitionRequest = nil 
     self.recognitionTask = nil 

    } 
} 

let recordingFormat = inputNode.outputFormat(forBus: 0) 
inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer: AVAudioPCMBuffer, when: AVAudioTime) in 
    self.recognitionRequest?.append(buffer) 
} 

audioEngine.prepare() 

try audioEngine.start() 

Haftungsausschluss - Der Code wurde aus genommen - here

+0

Hallo, in diesem gibt es einen Fehler, der besagt, dass readrecignizer nicht verfügbar ist, wenn Sie ein Objekt von SFSpeechRecognizer machen – Sheron

+0

Haben Sie 'Speech' Framework importiert? – Rajat

+0

Ja, ich habe es importiert, aber immer noch kommt der Fehler. – Sheron

2

Es scheint, wie Sie nicht viel Forschung über dieses Thema gemacht haben.

Alle Möglichkeiten gibt es viele Möglichkeiten, wie Sie erreichen, was Sie wollen ... wie:

  • Verwendung Speech Framework von Apple selbst. Sie erhalten Anleitungen für Sprachrahmen Arbeit here und here auch Sie an den Rahmen Details über here

  • Verwenden OpenEars (es ist ein Open-Source-Bibliothek für die Spracherkennung) aussehen kann

hoffe, dies wird Ihnen helfen, :)