Почему этот цикл while не запускается при нажатии кнопки tkinter?Python

Программы на Python
Ответить
Anonymous
 Почему этот цикл while не запускается при нажатии кнопки tkinter?

Сообщение Anonymous »

У меня есть базовый транскрибатор речи в текст на Python. Я хотел обернуть это в какой-нибудь простой графический интерфейс просто для развлечения, но у меня возникли большие проблемы с попыткой добавить к этому кнопку остановки и запуска. Буду признателен за советы!
Я подумал, что если добавить кнопку для установки значения, от которого зависит функция while, то она сможет запускать и останавливать функцию, однако это не так. Кажется, это не работает. Вообще ничего не происходит.

Код: Выделить всё

import speech_recognition as sr
import pyttsx3
import tkinter as tk

r = sr.Recognizer()

def start(value):
global startCheck
startCheck = 0
variable = value

root = tk.Tk()
root.title("CrittyCorder")
root.geometry("500x500")

label = tk.Label(root, text="Critty Corder", font=('Arial',24))
label.pack(padx=20, pady=20)

buttonframe = tk.Frame(root)
buttonframe.columnconfigure(0, weight=1)
buttonframe.columnconfigure(1, weight=1)
buttonframe.columnconfigure(2, weight=1)

startbutton = tk.Button(buttonframe, text="Start 'cording", font=('Arial',18),command=lambda *args: start(1))
startbutton.grid(row=0, column=0)
stopbutton = tk.Button(buttonframe, text="Stop 'cording", font=('Arial',18),command=lambda *args: start(0))
stopbutton.grid(row=0, column=1)

buttonframe.pack(padx=20, pady=20)

root.mainloop()

def record_text():
while(1):
try:
with sr.Microphone() as source2:
r.adjust_for_ambient_noise(source2, duration=0.2)
audio2 = r.listen(source2)

MyText = r.recognize_google(audio2)

return MyText

except sr.RequestError as e:
print("Couldn't get results; {0}".format(e))

except sr.UnknownValueError:
print("Unkown error occured")

return

def output_text(text):
f = open("critvoice.txt", "r")
temp = f.read()
f.close()
f = open("critvoice.txt", "w")
f.seek(0,0)
f.write(text + '\n' + temp)
f.write("\n")
f.close()

return

while(startCheck == 1):
text = record_text()
output_text(text)
print("wrote text:", text)
Есть ли другой способ реализовать это?

Подробнее здесь: https://stackoverflow.com/questions/791 ... is-pressed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»