Ein Beispiel für eine Echtzeitübersetzung vom Englischen ins Japanische beim Zoom Meeting.
Während Zoom leicht nationale Grenzen überschreiten kann, können Sie nicht davon profitieren, wenn Sie nicht auf Englisch kommunizieren können. Deshalb habe ich einen einfachen Mechanismus entwickelt.
Als rauer Fluss,
Die Sprachübersetzung in Echtzeit wird mithilfe der Microsoft Azure-API in Python für intern geroutete Sprache aus der Zoom-Sprachausgabe mit Soundflower durchgeführt. Zeigen Sie das von OSC von Python gesendete Übersetzungsergebnis in Untertiteln entsprechend der Webkamera-Eingabe mit dem Touch Designer an. Ausgabe mit Siphon Spout Out in Touch Designer und Zoom über CamTwist als virtuelle Webkamera erkennen lassen. Ein Gefühl der Macht.
Zoom muss überhaupt kein professioneller Account sein.
・ Mac Catalina ・ Python3.7 · Microsoft Azure-Konto ・ Berühren Sie Designer ・ Soundflower ・ TwistCam
Hier herunterladen
Soundflower https://github.com/mattingalls/Soundflower/releases/tag/2.0b2 (Schauen Sie sich die Notizen genau an.)
TwistCam http://camtwiststudio.com/
Nach der Installation wird im Soundmenü des Mac ein Element namens Soundflower für Eingabe und Ausgabe angezeigt. Stellen Sie also Eingabe 2ch und Ausgabe 2ch ein. Auf diese Weise können Sie den im Zoom gehörten Ton als Mikrofoneingang behandeln. In Fenstern ist Voice Meeter Banane sehr effektiv. Bisher wurde festgestellt, dass nur Soundflower ordnungsgemäß mit dem Mac funktioniert.
Verwenden Sie in Azure eine API namens Cognitive Services. https://azure.microsoft.com/ja-jp/services/cognitive-services/ Registrieren Sie sich auf der folgenden Seite. Ich habe auch einen Vertrag für die kostenlose Testversion, daher kostet es natürlich Geld, wenn ich es fest machen möchte.
Notieren Sie sich nach der Registrierung den Abonnementschlüssel und die Vorwahl.
Der Beispielcode ist hier. https://github.com/Azure-Samples/cognitive-services-speech-sdk Laden Sie dies herunter. Von allen Dateien im Python / Console-Ordner "YourSubscriptionKey", "YourServiceRegion" Umschreiben.
Schreiben Sie das Innere der Datei translation_sample.py neu, um den Wert des Echtzeit-Übersetzungsergebnisses aus der Spracheingabe von mac zu erhalten.
Einstellungen für OSC
#Satzanfang
from pythonosc import udp_client
from pythonosc.osc_message_builder import OscMessageBuilder
IP = '~'
PORT =Richtig einstellen
Stellen Sie das Übersetzungsziel auf Japanisch ein. Code zum Senden an Touch Designer in OSC hinzugefügt.
def translation_continuous():
"""performs continuous speech translation from input from an audio file"""
# <TranslationContinuous>
# set up translation parameters: source language and target languages
translation_config = speechsdk.translation.SpeechTranslationConfig(
subscription=speech_key, region=service_region,
speech_recognition_language='en-US',
target_languages=('ja', 'fr'), voice_name="de-DE-Hedda")
audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
# Creates a translation recognizer using and audio file as input.
recognizer = speechsdk.translation.TranslationRecognizer(
translation_config=translation_config, audio_config=audio_config)
def result_callback(event_type, evt):
"""callback to display a translation result"""
print("{}: {}\n\tTranslations: {}\n\tResult Json: {}".format(
event_type, evt, evt.result.translations['ja'], evt.result.json))
client = udp_client.UDPClient(IP, PORT);
msg = OscMessageBuilder(address='/translation')
msg.add_arg(evt.result.translations['ja'])
m = msg.build()
client.send(m)
done = False
#Kürzung
Wenn Sie nun main.py im Konsolenordner über die Eingabeaufforderung ausführen und ein englisches YouTube abspielen, sollte das Übersetzungsergebnis wie folgt in der Konsole angezeigt werden.
Ich habe den Touch-Designer nur ein paar Mal benutzt, also tappe ich. Ich denke, dass dies auch mit oF umgesetzt werden kann.
Wählen Sie die folgenden Knoten aus dem Menü aus und verbinden Sie sie.
・ (TOP) Videogerät in: Webkamera-Eingang ・ (TOP) Text: Übersetzte Untertitel anzeigen ・ (DAT) OSC In: Ändern Sie den Text des Untertitels als Reaktion auf OSC ・ (TOP) Over: Kombinieren Sie Webkamera-Video und Untertitel ・ (TOP) Siphon Device Out: Ausgabe als Siphon Übrigens scheint Siphon eine Open Source für den Austausch von Bildern zwischen Anwendungen unter Mac OS X zu sein.
Geben Sie im osc-Knoten den in Python ausgewählten Port ein und schreiben Sie den Code wie folgt neu.
def onReceiveOSC(dat, rowIndex, message, bytes, timeStamp, address, args, peer):
op("text2").par.text = message.strip("/translation ")
return
Sie sollten jetzt so etwas sehen:
Starten Sie TwistCam. Wählen Sie Siphon und Sie sollten das Element touchDesigner sehen. Innerhalb dieser Software kann die Ausgabe von Touch Designer in eine virtuelle Webkamera konvertiert werden.
Dies startet den Zoom. Ich denke, dass Cam Twist in der Kameraauswahl von Zoom angezeigt wird. Wenn Sie es also auswählen, wird der Touchscreen-Bildschirm der Hauptbildschirm sein.
Die Genauigkeit ist ziemlich gut. Wenn Sie den Python-Code von Japanisch auf Englisch umschreiben, sollten Sie dies sofort tun können. Es ist nicht besonders schwierig, aber ich habe viel Software verwendet, machen Sie sich also eine Notiz. Bitte kommentieren Sie, ob es einen besseren Weg gibt.