Найти - Пользователи
Полная версия: Голосовой калькулятор
Начало » Центр помощи » Голосовой калькулятор
1
evgeniy2018123
Привет всем ребята нужна помощь я думаю для экспертов будет легко !
Вообщем ребят надо сделать голосовой калькулятор ! я уже все сделал голос распознование и тд (через google api ) так вот когда я говорю допустим 5 + 5 он разпознает 5 + 5 а как сделать так что бы пример перевелся в int или как-то по другому ? кто знает ? как ето решить ?
PEHDOM
evgeniy2018123 в каком виде оно тебе возвращает результат?
py.user.next
Если выражения не сложные, то можно просто применять регулярные выражения для распознавания известных выражений. Если же выражения произвольные, то надо строить синтаксический анализатор со всеми прелестями - построение грамматики, рекурсивный спуск, построение дерева операций. Так что начни с простого, оно хоть порадует тебя результатом.
evgeniy2018123
PEHDOM
evgeniy2018123 в каком виде оно тебе возвращает результат?
вид(строка) еслия я говорю : 5 + 5 ; то она выводит уже красиво в консоле 5 + 5
как теперь его в int перевести(обычным способом ошибка )??
py.user.next
Если выражения не сложные, то можно просто применять регулярные выражения для распознавания известных выражений. Если же выражения произвольные, то надо строить синтаксический анализатор со всеми прелестями - построение грамматики, рекурсивный спуск, построение дерева операций. Так что начни с простого, оно хоть порадует тебя результатом.
Спасибо ну а можно ка който пример ? или я ща в гугле посижу

py.user.next
  
>>> def parse(text):
...     parts = text.split()
...     val1, op, val2 = int(parts[0]), parts[1], int(parts[2])
...     return (val1, val2, op)
... 
>>> def operate(val1, val2, op):
...     if op == '+':
...         return val1 + val2
...     if op == '-':
...         return val1 - val2
...     if op == '*':
...         return val1 * val2
...     if op == '/':
...         if val2 != 0:
...             return val1 / val2
...         raise ValueError('zero in denominator')
... 
>>> operate(*parse('5 + 10'))
15
>>> operate(*parse('5 * 10'))
50
>>>
evgeniy2018123
py.user.next
Спасибо попробую!!
sosok43k
Пишите на почту, готов все обьяснить
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB