Ответы пользователя по тегу Python
  • Как перевести аудио в текст?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    import speech_recognition as sr
    sinput = '/tmp/test.wav'
    r = sr.Recognizer()
    harvard = sr.AudioFile(sinput)
    with harvard as source:
    	audio = r.record(source)
    out = r.recognize_google(audio)
    print (out)

    5f62dce702cbf671167039.png
    ну так себе распознание
    а теперь другой голос и медленнее
    5f62de983d1d7211559769.png
    уже лучше
    но для фильмов/песен совершенно не годится:)
    Ответ написан
  • Почему не удаётся скачать пакеты через pip?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    vim ~/.config/pip/pip.conf

    [global]
    trusted-host = pypi.python.org 
    	pypi.org 
    	files.pythonhosted.org
    proxy = 192.168.1.45:3128 #указать прокси или удалить строку
    user=y
    Ответ написан
    Комментировать
  • Gtk, TextView и строки. Как вывести?

    delvin-fil
    @delvin-fil Автор вопроса
    Crazy Linux-admin
    Решено!
    outtext = ts.google(intext,
                        to_language=langout,
                        is_detail_result=True,
                        if_use_cn_host=True)

    убрал is_detail_result=True
    outtext = ts.google(intext,
                        to_language=langout,
                        if_use_cn_host=True)

    и все заработало как задумано.
    5f28b7c319e29631470959.png
    Ответ написан
    Комментировать
  • Как обучить tesseract под свой шрифт?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    tesseract 4.1.1, pytesseract 0.3.0 жрет все(ну почти)
    Код:
    def ocr(self):
            global dtout
            pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'
            dtout = pytesseract.image_to_string(Image.open(fname), 'rus+eng+chi_tra+jpn')
            self.ui.textOut.setText(dtout)

    5e8c4a0b4c38a428035683.png
    5e8c4a954fd38632050017.png

    Покажите картинку, которую собираетесь распознать.
    Ответ написан
  • Как найти идентификатор флешки?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    Ну так то можно.
    lsusb
    5e8a71996bea9880394229.png
    ls /sys/bus/usb/drivers/usb-storage/
    hub/  snd-usb-audio/  usb/  usb-storage/  usbfs/  usbhid/  uvcvideo/
    
    ls /sys/bus/usb/drivers/usb-storage/
    1-1.6:1.0@  bind  module@  new_id  remove_id  uevent  unbind
    
    ls -lh lh /sys/bus/usb/drivers/usb-storage/1-1.6\:1.0
    lrwxrwxrwx 1 root root 0 апр  6 07:05 /sys/bus/usb/drivers/usb-storage/1-1.6:1.0 -> ../../../../devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/
    
    ls /sys/devices/pci0000\:00/0000\:00\:1a.0/usb1/1-1/1-1.6/
    ...idProduct ...idVendor ...serial
    
    cat /sys/devices/pci0000\:00/0000\:00\:1a.0/usb1/1-1/1-1.6/serial

    5F37A3B6E4D7CE4021364CEE

    UPD: файл serial можно найти проще.
    lsusb
    ... ID 0930:6544 Toshiba  ...
    
    grep 0930 /sys/bus/usb/devices/*/idVendor
    /sys/bus/usb/devices/1-1.6/idVendor:0930
    
    cat /sys/bus/usb/devices/1-1.6/serial

    5F37A3B6E4D7CE4021364CEE
    Ответ написан
    Комментировать
  • Как задать горячую клавишу в PySide?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    Смотрите здесь.
    Вроде доходчиво.
    Ответ написан
  • В чем ошибка...?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    Шindows 10 работало

    Логично - там другой движок.
    У вас небось espeak отсутствует, вот и ошибка engine вылезла.
    И да, возьмите версию посвежей.
    Ответ написан
    Комментировать
  • Как собрать Bazel'ем проект Python?

    delvin-fil
    @delvin-fil Автор вопроса
    Crazy Linux-admin
    Решил иначе.
    Накатил nuitka и собрал
    time nuitka3 ocrgui.py --clang
    Отлично работает.
    Собственно, код:
    #!/usr/bin/env python3.6
    # -*- coding: utf-8 -*-
    import re
    import sys
    import warnings
    import os
    import time
    from PIL import Image
    import pytesseract
    from PyQt5 import (QtCore, QtGui, uic, QtWidgets)
    from PyQt5.QtWidgets import (QMainWindow, QTextEdit, QAction, QFileDialog, QApplication, QProgressBar)
    from PyQt5.QtGui import QIcon, QPicture
    from PyQt5.QtCore import *
    import locale
    locale.setlocale(locale.LC_ALL, 'ru_RU.utf8')
    warnings.filterwarnings("ignore")
    
    cwd = os.path.dirname(os.path.abspath(__file__))
    print (cwd)
    dtout = ''
    filename = "ocr.ui"
    filename = f"{cwd}/{filename}"
    Form, Base = uic.loadUiType(filename)
    
    class MyWindow(QtWidgets.QWidget, Form):
        def __init__(self, parent=None):
            QtWidgets.QWidget.__init__(self, parent)
            self.ui = Form()
            self.ui.setupUi(self)
            self.ui.btnQuit.clicked.connect(QCoreApplication.instance().quit)
            self.ui.btnQuit.setToolTip("Выход")
            self.ui.btnConv.setToolTip("Распознать")
            self.ui.showd.clicked.connect(self.getfiles)
            self.ui.btnSave.clicked.connect(self.save_f)
            self.ui.showd.setToolTip("Открывает изображение")
            self.ui.mylabel_2.setText("Входное изображение")
            self.ui.btnConv.clicked.connect(self.ocr)
            self.ui.mylabel.setText(f" ")
           
        def getfiles(self):
            global fname
            fname = QFileDialog.getOpenFileName(self, "Open PNG", f"{cwd}/", "PNG (*.png);;GIF (*.gif);;JPG (*.jpg *.jpe *.JPEG );;TIFF (*.tiff);;All (*)")[0]
            if fname == '':
                QFileDialog(self, quit())
            with open(fname, 'rb') as data:
                self.ui.mylabel_2.setScaledContents(True)
                self.ui.mylabel.setText(f"Файл: {fname}")
                self.ui.mylabel_2.setPixmap(QtGui.QPixmap(f"{fname}"))
            print (f"\n{fname}")
            global fout
            fout = re.sub(r'\.png|\.PNG', '', fname)
            fout = fout + '.txt'
    
        def ocr(self):
            global dtout
            pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'
            dtout = pytesseract.image_to_string(Image.open(fname), 'rus+eng+chi_tra+jpn')
            self.ui.textOut.setText(dtout)
    
        def save_f(self):
            if dtout == '':
                self.ui.mylabel.setText(f"Файл не распознан")
            elif dtout != '':
                out  = self.ui.textOut.toPlainText()
                with open(fout, 'w') as f_out:
                    f_out.write(out + "\n")
                    self.ui.mylabel.setText('Файл сохранен: ' + fout)
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        window = MyWindow()
        pal = window.palette()
        window.setFixedSize(656, 320)
        window.setWindowTitle("Gui for tesseract")
        window.setWindowIcon(QtGui.QIcon(f"{cwd}/fontmanager.png")) 
        window.show()
        sys.exit(app.exec_())

    5e17cefea7942245321729.png
    Осталось шрифты поправить - не цепляет Qt'шные.
    Ответ написан
    Комментировать
  • Как импортировать beautyfulSoup?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    apt-get install python3-bs4
    Затем установил сам bs4 так:
    pipenv install bs4

    Да вот не надо этого всего.
    Просто:
    pip install bs4
    И все.
    Ответ написан
    3 комментария
  • Почему код на Python завершается ошибкой?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    Не повторял.
    Пишет, что уже запущен. У вас цикл скорее всего неправильно оформлен. Ну или питон не закрылся после предыдущего запуска.
    Ответ написан
  • Как открыть python файл через PowerShell?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    Потому что надо ввести четыре аргумента.
    python file.py пример 1агрумент 2аргумент 3агрумент
    Просто скопируйте это и вставьте в командную строку. Увидите следующее:
    > пример
    > 1агрумент
    > 2агрумент
    > 3агрумент
    Ответ написан
  • Проблема с RHVoice?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    А вы уверены, что voices[4] чуществует? Попробуйте voices[0] для начала.
    Ибо list index out of range означает, что индекс за пределами списка.
    Ответ написан
  • Планирование на питоне?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    crontab -e
    # m h  d  m  w
      0 15 19 11 * sh -c /path/to/notif.sh

    notif.sh
    #!/bin/bash
    gxmessage -display :0 -wrap -fg red -bg black -center -font \
    "Menlo bold 46" -title "- = НАПОМИНАНИЕ = -" -geometry 800x400 \
     -wrap "2019.11.19  15:00 НАПОМНИЛ!"

    5dd41689dd29a662611959.png
    Ответ написан
    Комментировать
  • Использование Linux для различных яп?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    а можно ли использовать Python на Linux?

    Это что, стеб такой?
    Ответ написан
    Комментировать
  • Как определить местоположение юзера?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    Вообще, как я уже комментировал выше, везде присутствует запрос
    'HTTP_X_REAL_IP'
    или
    'HTTP_CLIENT_IP'
    Вот здесь довольно неплохо изложено.
    С одним "но" - MongoDB.
    Я думаю, если покопаться в справочниках(а они есть и на русском), то можно сие переписать под ДБ предоставляемым хостером.
    Да в конце концов, можно и в, скажем, CSV это все гнать.

    Но проще всего на стороне сервера запустить что-то такое:
    <?php
    $file="stat.log";    // файл для записи истории посещения сайта
    $col_zap=500;    // ограничиваем количество строк log-файла 
    
    function getRealIpAddr() {
      if (!empty($_SERVER['HTTP_CLIENT_IP']))        // Определяем IP
      { $ip=$_SERVER['HTTP_CLIENT_IP']; }
      elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
      { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; }
      else { $ip=$_SERVER['REMOTE_ADDR']; }
      return $ip;
    }
    
    if (strstr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')) {$bot='YandexBot';} //Выявляем поисковых ботов
    elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bot='Googlebot';}
    else { $bot=$_SERVER['HTTP_USER_AGENT']; }
    
    $ip = getRealIpAddr();
    $date = date("H:i:s d.m.Y");        // определяем дату и время события
    $home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];    // определяем страницу сайта
    $lines = file($file);
    while(count($lines) > $col_zap) array_shift($lines);
    $lines[] = $date."|".$bot."|".$ip."|".$home."|\r\n";
    file_put_contents($file, $lines);
    ?>

    На выходе получаем подобное этому:
    5dbecd91ba7f8708290260.png
    Останется только распарсить log-файл(модулей для python полно)
    Ответ написан
    Комментировать
  • На чем писать gui-программы для debian?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    PyQt5 Хорош. Но "жирный".
    GTK3+ Намного резвее Qt
    Ну и самый, пожалуй, быстрый - wxPython
    Tk и прочие легковесные модули рассматривать не имеет смысла, ибо возможности у них "никакие".
    Ответ написан
    Комментировать
  • Возможно ли объединять .exe с .txt, используя Python?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    Знания в Python и умение объединять exe с txt и другими расширениями

    Не соглашайся. Через каждые полчаса будешь ВСЕ переделывать согласно новым хотелкам.
    Ответ написан
    Комментировать
  • Как получить число из QLabel в pyqt5?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    Это не Qlabel.
    Ответ написан
    Комментировать
  • Пробую создать бота на Python, выдаёт syntaxerror, в чём ошибка?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    The environment variable 'Path' seems to have some paths containing the '"' character. The existence of such a character is known to have caused the Python extension to not load. If the extension fails to load please modify your paths to remove this '"' character.

    гуглоперевод:
    Переменная окружения 'Path', кажется, имеет несколько путей, 
    содержащих символ "" ". Известно, что существование такого символа 
    приводило к тому, что расширение Python не загружалось. Если 
    расширение не удается загрузить, измените пути, чтобы удалить это" "' характер."
    Ответ написан