گفتار به متن
سلام امید وارم حالتون خوب باشه
من چند شب هست روی یه کد کار میکنم ولی خیلی عجیه، کدش رو اخر متن گزاشتم
این کد از گوگل برای تشحیص کلمه ها استفاده می کنه و فارسی هم ساپورت میکنه
خلاصه بگم وقتی دکمه شنود ور میزنی برنامه کرش میکنه
او فکر کردم میکروفون رو نمی شناسه بعد از یه سورس دیگه استفاده کردم نشد
import tkinter as tk
from tkinter import scrolledtext
import speech_recognition as sr
import pyaudio
def list_microphones():
p = pyaudio.PyAudio()
info = p.get_host_api_info_by_index(0)
num_devices = info.get('deviceCount')
microphones = []
for i in range(num_devices):
if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels')) > 0:
microphones.append(p.get_device_info_by_host_api_device_index(0, i).get('name'))
return microphones
def recognize_speech():
selected_microphone = microphone_var.get()
print(f"میکروفون انتخابی: {selected_microphone}")
with sr.Microphone(device_index=microphones.index(selected_microphone)) as source:
text.delete('1.0', tk.END)
text.insert('1.0', "در حال گوش دادن به گفتار...\n")
text.update()
r = sr.Recognizer()
try:
audio = r.listen(source, timeout=5)
recognized_text = r.recognize_google(audio, language='fa-IR')
text.delete('1.0', tk.END)
text.insert('1.0', recognized_text)
except sr.UnknownValueError:
text.delete('1.0', tk.END)
text.insert('1.0', "گفتار شناسایی نشد.")
except sr.RequestError as e:
text.delete('1.0', tk.END)
text.insert('1.0', "مشکل در درخواست به سرویس گوگل:\n" + str(e))
text.update()
root = tk.Tk()
root.title("تبدیل گفتار به متن")
text = scrolledtext.ScrolledText(root, width=40, height=10)
text.pack()
button = tk.Button(root, text="شنود", command=recognize_speech)
button.pack()
microphone_var = tk.StringVar()
microphone_var.set(list_microphones()[0])
microphones = list_microphones()
microphone_menu = tk.OptionMenu(root, microphone_var, *microphones)
microphone_menu.pack()
root.mainloop()
import tkinter as tk
from tkinter import scrolledtext
import speech_recognition as sr
import pyaudio
def list_microphones():
p = pyaudio.PyAudio()
info = p.get_host_api_info_by_index(0)
num_devices = info.get('deviceCount')
microphones = []
for i in range(num_devices):
if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels')) > 0:
microphones.append(p.get_device_info_by_host_api_device_index(0, i).get('name'))
return microphones
def recognize_speech():
selected_microphone = microphone_var.get()
print(f"میکروفون انتخابی: {selected_microphone}")
with sr.Microphone(device_index=microphones.index(selected_microphone)) as source:
text.delete('1.0', tk.END)
text.insert('1.0', "در حال گوش دادن به گفتار...\n")
text.update()
r = sr.Recognizer()
try:
audio = r.listen(source, timeout=5)
recognized_text = r.recognize_google(audio, language='fa-IR')
text.delete('1.0', tk.END)
text.insert('1.0', recognized_text)
except sr.UnknownValueError:
text.delete('1.0', tk.END)
text.insert('1.0', "گفتار شناسایی نشد.")
except sr.RequestError as e:
text.delete('1.0', tk.END)
text.insert('1.0', "مشکل در درخواست به سرویس گوگل:\n" + str(e))
text.update()
root = tk.Tk()
root.title("تبدیل گفتار به متن")
text = scrolledtext.ScrolledText(root, width=40, height=10)
text.pack()
button = tk.Button(root, text="شنود", command=recognize_speech)
button.pack()
microphone_var = tk.StringVar()
microphone_var.set(list_microphones()[0])
microphones = list_microphones()
microphone_menu = tk.OptionMenu(root, microphone_var, *microphones)
microphone_menu.pack()
root.mainloop()
1 پاسخ
- دانیال آذرپناه29 مهر ۱۴۰۲
سلام و وقت بخیر. من رو سیستم خودم تست کردم اوکی بود هر دو زبان فارسی و انگلیسی. البته من رو ویندوز نیستم و روی سیستم عامل من نیاز بود یه افزونه هایی نصب بشه. شما وقتی ران میگرید بهتون ارور میده یا میبنده برنامه رو؟ اگه ارور میده متنشو برام بفرستید
