Un exemple de traduction en temps réel de l'anglais vers le japonais à Zoom Meeting.
Bien que Zoom puisse facilement traverser les frontières nationales, si vous ne pouvez pas communiquer en anglais, vous ne pourrez pas en profiter, j'ai donc construit un mécanisme simple.
Comme un flux brutal,
La traduction vocale en temps réel est effectuée à l'aide de l'API Microsoft Azure en Python pour la voix acheminée en interne à partir de la sortie vocale Zoom à l'aide de Soundflower. Affichez le résultat de la traduction envoyé par OSC à partir de python en sous-titres en fonction de l'entrée de la caméra Web avec le concepteur tactile. Sortie à l'aide de Siphon Spout Out dans Touch Designer et laissez Zoom le reconnaître comme une caméra Web virtuelle via CamTwist. Un sentiment de puissance.
Zoom n'a pas du tout besoin d'être un compte professionnel.
・ Mac Catalina ・ Python3.7 · Compte Microsoft Azure ・ Concepteur tactile ・ Fleur sonore ・ TwistCam
Téléchargez ici
Soundflower https://github.com/mattingalls/Soundflower/releases/tag/2.0b2 (Regardez attentivement les notes)
TwistCam http://camtwiststudio.com/
Une fois installé, un élément appelé soundflower sera affiché à la fois pour l'entrée et la sortie dans le menu son du mac, alors réglez l'entrée 2ch et la sortie 2ch. Cela vous permet de traiter le son que vous entendez dans Zoom comme une entrée de microphone. Sous windows, la voix meeter banana est assez efficace. Jusqu'à présent, seul Soundflower fonctionnait correctement avec Mac.
Dans Azure, utilisez une API appelée Cognitive Services. https://azure.microsoft.com/ja-jp/services/cognitive-services/ Inscrivez-vous à partir de la page suivante. J'ai également un contrat pour la version d'essai gratuite, donc bien sûr, cela coûte de l'argent si je veux le faire fermement.
Après vous être enregistré, notez la clé d'abonnement et l'indicatif régional.
L'exemple de code est ici. https://github.com/Azure-Samples/cognitive-services-speech-sdk Téléchargez ceci. De tous les fichiers du dossier python / console "YourSubscriptionKey", "YourServiceRegion" Récrire.
Réécrivez l'intérieur du fichier translation_sample.py pour obtenir la valeur du résultat de la traduction en temps réel à partir de l'entrée vocale de mac.
Paramètres pour OSC
#Début de phrase
from pythonosc import udp_client
from pythonosc.osc_message_builder import OscMessageBuilder
IP = '~'
PORT =Définir correctement
Définissez la destination de la traduction sur le japonais. Ajout du code à envoyer au concepteur tactile dans OSC.
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
#réduction
Maintenant, si vous exécutez main.py dans le dossier de la console à partir de l'invite de commande et lisez un youtube en anglais, le résultat de la traduction devrait être affiché dans la console comme ceci.
Je n'ai utilisé le concepteur tactile que quelques fois, alors je tâtonne. Je pense que cela peut également être implémenté avec oF.
Sélectionnez les nœuds suivants dans le menu et connectez-les.
・ Appareil vidéo (TOP) dans: entrée de caméra Web ・ (TOP) Texte: Afficher les sous-titres traduits ・ (DAT) OSC In: modifier le texte du sous-titre en réponse à OSC ・ (TOP) Over: Combinez la vidéo de la caméra Web et les sous-titres ・ (TOP) Sortie du dispositif de siphon: sortie comme siphon À propos, siphon semble être une source ouverte d'échange d'images entre applications sous Mac OSX.
Dans le nœud osc, entrez le port sélectionné en python et réécrivez le code comme suit.
def onReceiveOSC(dat, rowIndex, message, bytes, timeStamp, address, args, peer):
op("text2").par.text = message.strip("/translation ")
return
Vous devriez maintenant voir quelque chose comme ceci:
Démarrez TwistCam. Sélectionnez siphon et vous devriez voir l'élément touchDesigner. Dans ce logiciel, la sortie de Touch Designer peut être convertie en une webcam virtuelle.
Cela lance le zoom. Je pense que Cam Twist apparaît dans la sélection de caméras de Zoom, donc si vous le sélectionnez, l'écran du concepteur tactile sera l'écran principal.
La précision est plutôt bonne. Si vous réécrivez le code python du japonais vers l'anglais, vous devriez pouvoir le faire immédiatement. Ce n'est pas particulièrement difficile, mais j'ai utilisé beaucoup de logiciels, alors prenez note. Veuillez commenter s'il existe un meilleur moyen.