[PYTHON] J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2

introduction

[Dernier article] Comme vous pouvez le voir sur (https://qiita.com/tkmktdm/items/6f8e363858f4061d8cfd), la dernière fois, lors de l'enregistrement automatique, il n'a été enregistré que dans le même fichier. Cependant, à la suite de l'écriture d'un fichier html et du chargement du fichier audio avec javascript, dois-je le rouvrir ou charger un autre fichier? Je voulais le voir. (Je ne connais pas les détails lol)

Plus précisément

Préparez les variables globales dans le fichier programme principal créé la dernière fois et comptez le nombre envoyé.

Utilisez l'outil Inspecter pour trouver l'emplacement dans le champ Nom [Combo Box] sous Enregistrer sous. Ensuite, la variable globale préparée dans main est placée là et reçoit un nom différent.

Écran principal

aitalk.py


import wave
import winsound as ws
import tkinter
import sys
import tkinter.messagebox as tkm
import time
from voice2 import talkVOICEROID2
from voiceroid2_1 import talkVOICEROID2_1
from voiceroid2_2 import talkVOICEROID2_2
from voiceroid2_3 import talkVOICEROID2_3
from voiceroid2_4 import talkVOICEROID2_4
import time

#Définir pour une utilisation mondiale(Pour compter les temps)
setnumber = 0

root=tkinter.Tk()
root.geometry("1920x1080")
root.title(u"aoi talk")
kotonoha=tkinter.PhotoImage(file="C:/Users/takumi/Desktop/voice/01.png ")
canvas=tkinter.Canvas(bg="white",width=475,height=750)
canvas.place(x=1300,y=250)
canvas.create_image(0,0, image=kotonoha, anchor=tkinter.NW)

def addlist(text):
    mysay="you: "+ text
    print(mysay)
    listbox.insert(tkinter.END,mysay)
    chat = "Aoi: " + talk(text)
    Entry1.delete(0, tkinter.END)
    chatCut(chat)

def chatCut(chat):
    aoi=chat
    addRep(aoi)

def addRep(aoi):
    listbox.insert(tkinter.END, aoi)
    global setnumber
    setnumber+=1
    #Traitement de la voix
    voiceroid=aoi[5:]
    voiceroid=voiceroid+"Tsu"
    word=len(voiceroid)
    destime=round(word/7+0.1,1)
    #destime=round(word/7+1.1,1)
    #Si vous ne pouvez pas parler sur le bureau, ajoutez le commentaire suivant
    talkVOICEROID2(voiceroid)
    time.sleep(destime)
    print(destime)
    #-----------zzz
    talkVOICEROID2_1(voiceroid)
    time.sleep(0.3)
    talkVOICEROID2_2(voiceroid,setnumber)

    time.sleep(0.2)
    talkVOICEROID2_3(voiceroid)
    time.sleep(0.2)
    talkVOICEROID2_4(voiceroid)

def talk(say):
    if say == 'end':
        return ('à plus')
    else:
        return (say)

static=tkinter.Label(text=u"Parlez à Aoi-chan!")
static.pack()

Entry1=tkinter.Entry(width=50)
Entry1.insert(tkinter.END,u"Bonjour")
Entry1.pack()

button=tkinter.Button(text=u"Envoyer", width=50,command=lambda: addlist(Entry1.get()))
button.pack()

listbox=tkinter.Listbox(width=55,height=15)
listbox.pack()

root.mainloop()

Partie de traitement

** Modifier uniquement le fichier voiceroid2_2.py **

voiceroid2_2.py


#Deuxième fois
# -*- coding: utf-8 -*-
import pywinauto

def search_child_byclassname_2(class_name, uiaElementInfo, target_all = False):
    target = []
    #Rechercher tous les éléments enfants
    for childElement in uiaElementInfo.children():
        #Confirmation de correspondance de nom de classe

        if childElement.class_name == class_name:
            if target_all == False:
                return childElement
            else:
                target.append(childElement)
    if target_all == False:
        #Faux sinon
        return False
    else:
        return target

def search_child_byname_2(name, uiaElementInfo):
    #Rechercher tous les éléments enfants
    for childElement in uiaElementInfo.children():
        #Confirmation de correspondance de nom
        if childElement.name == name:
            return childElement
    #Faux sinon
    return False

def talkVOICEROID2_2(speakPhrase,num):
    setnumber=str(num) + ".wav"
    print(setnumber)
    #Éléments de bureau
    parentUIAElement = pywinauto.uia_element_info.UIAElementInfo()
    #Rechercher voiceroid
    voiceroid2 = search_child_byname_2("VOICEROID2",parentUIAElement)
    # *Si est attaché
    if voiceroid2 == False:
        voiceroid2 = search_child_byname_2("VOICEROID2*",parentUIAElement)

    #Changer d'ici
    #Enregistrer sous Get ElementInfo de l'élément
    saveEle = search_child_byclassname_2("#32770",voiceroid2)
 
    #Modifier le nom
    win = search_child_byclassname_2("DUIViewWndClassName",saveEle)

    winwin = search_child_byclassname_2("AppControlHost",win)

    filewin = search_child_byclassname_2("Edit",winwin)

    textBoxEditControl = pywinauto.controls.uia_controls.EditWrapper(filewin)
    textBoxEditControl.set_edit_text(setnumber)

    playsaveEle = search_child_byclassname_2("Button",saveEle,target_all = False)

    #Obtenir le contrôle du bouton
    playButtonControl = pywinauto.controls.uia_controls.ButtonWrapper(playsaveEle)

    #Appuyez sur le bouton de lecture
    playButtonControl.click()

finalement

Cette fois aussi, j'ai pu l'enregistrer dans un autre fichier et j'ai réussi! !! Veuillez noter que la structure sous Windows peut être différente selon la personne! (;^ω^)

Recommended Posts

J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé d'implémenter et d'apprendre DCGAN avec PyTorch
J'ai essayé d'implémenter Grad-CAM avec keras et tensorflow
J'ai essayé de créer automatiquement un rapport avec la chaîne de Markov
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
J'ai essayé de publier automatiquement sur ChatWork au moment du déploiement avec Fabric et ChatWork Api
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé de visualiser AutoEncoder avec TensorFlow
J'ai essayé de visualiser les signets volant vers Slack avec Doc2Vec et PCA
Un mémorandum lors de l'acquisition automatique avec du sélénium
J'ai essayé de commencer avec Hy
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé d'implémenter CVAE avec PyTorch
J'ai essayé de créer des taureaux et des vaches avec un programme shell
J'ai essayé de détecter facilement les points de repère du visage avec python et dlib
J'ai essayé de résoudre TSP avec QAOA
J'ai essayé de collecter automatiquement des images de Kanna Hashimoto avec Python! !!
J'ai essayé de me connecter automatiquement à Twitter avec du sélénium (RPA, scraping)
J'ai essayé d'exprimer de la tristesse et de la joie face au problème du mariage stable.
Recevez des tweets avec la fonction Google Cloud et enregistrez automatiquement les images dans Google Photos
J'ai essayé de convertir la chaîne datetime <-> avec tzinfo en utilisant strftime () et strptime ()
J'ai essayé d'extraire automatiquement les mouvements des joueurs Wiire avec un logiciel
J'ai essayé d'apprendre l'angle du péché et du cos avec le chainer
[Outlook] J'ai essayé de créer automatiquement un e-mail de rapport quotidien avec Python
[Chaîne de Markov] J'ai essayé de lire des citations et des émotions négatives en Python.
J'ai essayé de contrôler la bande passante et le délai du réseau avec la commande tc
J'ai essayé de prédire l'année prochaine avec l'IA
J'ai essayé d'implémenter la lecture de Dataset avec PyTorch
J'ai essayé d'utiliser lightGBM, xg boost avec Boruta
J'ai essayé d'apprendre le fonctionnement logique avec TF Learn
J'ai essayé de déplacer GAN (mnist) avec keras
J'ai implémenté DCGAN et essayé de générer des pommes
J'ai essayé de détecter rapidement un mouvement avec OpenCV
J'ai essayé d'intégrer Keras dans TFv1.1
J'ai essayé de jouer en connectant PartiQL et MongoDB
J'ai essayé la différenciation jacobienne et partielle avec python
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé la synthèse de fonctions et le curry avec python
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé de détecter un objet avec M2Det!
J'ai essayé d'automatiser la fabrication des sushis avec python
J'ai essayé de prédire la survie du Titanic avec PyCaret
J'ai essayé d'utiliser Linux avec Discord Bot
J'ai essayé d'étudier DP avec séquence de Fibonacci
J'ai essayé de démarrer Jupyter avec toutes les lumières d'Amazon
J'ai essayé de juger Tundele avec Naive Bays
[Introduction au PID] J'ai essayé de contrôler et de jouer ♬
J'ai essayé de déboguer.
J'ai essayé de faire un processus périodique avec CentOS7, Selenium, Python et Chrome
[Introduction à AWS] J'ai essayé de porter une application de conversation et de jouer avec text2speech @ AWS ♪
J'ai essayé de créer une API de reconnaissance d'image simple avec Fast API et Tensorflow
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
J'ai essayé d'entraîner la fonction péché avec chainer
J'ai essayé de déplacer l'apprentissage automatique (détection d'objet) avec TouchDesigner