Hallo zusammen, ich bin Kite
Vor zwei Jahren war es schwierig, Audio- und Videodateien in Textinhalte umzuwandeln, aber jetzt lässt es sich ganz einfach in nur wenigen Minuten lösen.
Es heißt, dass einige Unternehmen, um Trainingsdaten zu erhalten, Videos auf Kurzvideoplattformen wie Douyin und Kuaishou vollständig gecrawlt haben, dann den Ton aus den Videos extrahiert und sie in Textform umgewandelt haben, um sie als Trainingskorpus zu verwenden Big-Data-Modelle.
Wenn Sie Video- oder Audiodateien in Text konvertieren müssen, können Sie diese heute verfügbare Open-Source-Lösung ausprobieren. Sie können beispielsweise nach bestimmten Zeitpunkten suchen, zu denen Dialoge in Film- und Fernsehsendungen erscheinen.
Kommen wir ohne weitere Umschweife zum Punkt.
Diese Lösung ist OpenAIs Open-Source-Whisper. Natürlich ist sie in Python geschrieben. Sie müssen nur ein paar Pakete installieren, dann ein paar Zeilen Code schreiben und einen Moment warten (abhängig von der Leistung Ihres Computers). und Audio- und Videolänge) (verschieden), der endgültige Textinhalt kommt heraus, so einfach ist das.
GitHub-Lageradresse: https://github.com/openai/whisper
Obwohl es ziemlich vereinfacht ist, ist es für Programmierer immer noch nicht rationalisiert genug. Schließlich bevorzugen Programmierer tendenziell Einfachheit und Effizienz. Obwohl es relativ einfach ist, Whisper zu installieren und aufzurufen, müssen Sie PyTorch, ffmpeg und sogar Rust dennoch separat installieren.
So entstand Fast-Whisper, das schneller und einfacher als Whisper ist. Fast-Whisper ist nicht nur eine einfache Kapselung von Whisper, sondern eine Rekonstruktion des Whisper-Modells von OpenAI unter Verwendung von CTranslate2. CTranslate2 ist eine effiziente Inferenz-Engine für das Transformer-Modell.
Zusammenfassend ist es schneller als Whisper. Die offizielle Aussage lautet, dass es 4-8 mal schneller als Whisper ist. Es unterstützt nicht nur die GPU, sondern auch die CPU, und sogar mein kaputter Mac kann verwendet werden.
GitHub-Lageradresse: https://github.com/SYSTRAN/faster-whisper
Die Verwendung dauert nur zwei Schritte.
pip install faster-whisper
from faster_whisper import WhisperModelmodel_size = "large-v3"# Run on GPU with FP16model = WhisperModel(model_size, device="cuda", compute_type="float16")# or run on GPU with INT8# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")# or run on CPU with INT8# model = WhisperModel(model_size, device="cpu", compute_type="int8")segments, info = model.transcribe("audio.mp3", beam_size=5)print("Detected language '%s' with probability %f" % (info.language, info.language_probability))for segment in segments:print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
Ja, so einfach ist das.
Zufällig gibt es einen Freund, der kurze Videos machen und einige Videos zur Hühnersuppe-Literatur veröffentlichen möchte, die aus Interviews mit einigen berühmten Leuten stammen. Er wollte jedoch nicht das gesamte Video noch einmal ansehen, sondern nur den schnellsten Weg nutzen, um den Textinhalt abzurufen und dann den Text zu lesen, da das Lesen von Text viel schneller ist als das Ansehen eines Videos, und das kann auch der Fall sein gesucht.
Lassen Sie mich einfach sagen: Wenn Sie nicht einmal die Frömmigkeit haben, sich ein komplettes Video anzusehen, wie können Sie dann ein Konto gut verwalten?
Also habe ich mit Fast-Whisper eins für ihn gemacht.
Der Client verwendet Swift und unterstützt nur Mac.
Serverseitig Python und dann mit Flask verpackt, öffnen die Schnittstelle zur Außenwelt.
from flask import Flask, request, jsonifyfrom faster_whisper import WhisperModelapp = Flask(__name__)model_size = "large-v2"model = WhisperModel(model_size, device="cpu", compute_type="int8")@app.route('/transcribe', methods=['POST'])def transcribe():# Get the file path from the requestfile_path = request.json.get('filePath')# Transcribe the filesegments, info = model.transcribe(file_path, beam_size=5, initial_prompt="简体")segments_copy = []with open('segments.txt', 'w') as file:for segment in segments:line = "%.2fs|%.2fs|[%.2fs -> %.2fs]|%s" % (segment.start, segment.end, segment.start, segment.end, segment.text)segments_copy.append(line)file.write(line + '\n')# Prepare the responseresponse_data = {"language": info.language,"language_probability": info.language_probability,"segments": []}for segment in segments_copy:response_data["segments"].append(segment)return jsonify(response_data)if __name__ == '__main__':app.run(debug=False)
Das obige ist der detaillierte Inhalt vonso schnell! Erkennen Sie Videosprache in nur wenigen Minuten mit weniger als 10 Codezeilen in Text. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!