Установка средства командной строки Flac в Windows

#python #windows #raspberry-pi

#python #Windows #raspberry-pi

Вопрос:

Ситуация

Я пытаюсь заставить распознавание речи работать на Python.

  • ОС: Windows 10
  • Система: RaspBerry PI 4 4GB
  • Версия Python: 3.9.0 32 бит

Исходный код

 import speech_recognition as sr

r = sr.Recognizer()
with sr.Microphone() as source:
    r.pause_threshold = 0.5
    voice = r.listen(source)
    command = r.recognize_google(voice, language="nl-NL")
    command = command.lower()
    r.adjust_for_ambient_noise(source, duration=0.5)
 

Вывод

 C:UsersuserDocumentsuseruser-masteruserv2userStatic>py test.py
Traceback (most recent call last):
  File "C:UsersuserDocumentsuseruser-masteruserv2userStatictest.py", line 7, in <module>
    command = r.recognize_google(voice, language="nl-NL")
  File "C:UsersuserAppDataLocalProgramsPythonPython39-32libsite-packagesspeech_recognition__init__.py", line 826, in recognize_google
    flac_data = audio_data.get_flac_data(
  File "C:UsersuserAppDataLocalProgramsPythonPython39-32libsite-packagesspeech_recognition__init__.py", line 445, in get_flac_data
    flac_converter = get_flac_converter()
  File "C:UsersuserAppDataLocalProgramsPythonPython39-32libsite-packagesspeech_recognition__init__.py", line 1196, in get_flac_converter
    raise OSError("FLAC conversion utility not available - consider installing the FLAC command line application by running `apt-get install flac` or your operating system's equivalent")
OSError: FLAC conversion utility not available - consider installing the FLAC command line application by running `apt-get install flac` or your operating system's equivalent
 

Итак, я загрузил Flac с https://xiph.org/flac/download .
Я установил последнюю версию для Windows. Затем я разархивировал файл и запустил 64-разрядные EXE-файлы и 32-разрядные exe-файлы.

Когда я набираю «Flac» в командной строке, он говорит:

 'flac' is not recognized as an internal or external command,
operable program or batch file.
 

Нужно ли добавлять Flac в переменные системного окружения? Если да, то как? Если нет; что происходит?

Ответ №1:

После некоторых исследований я обнаружил, что вы можете поместить EXE-файл в свой C:WindowsSystem32 папка для того, чтобы использовать командные средства flac в командной строке.

Ответ №2:

Я столкнулся с той же проблемой. Наконец я решил использовать следующие шаги:

  1. Перейдите на страницу загрузки flac
  2. Выберите ОС (Windows, в вашем случае)
  3. Загрузите win.zip версию (последнюю), возможно, в конце страницы. Я скачал этот (1.3.4-win.zip )
  4. Перейдите в каталог загрузки и извлеките его (вы можете просто использовать Extract Here )
  5. Перейдите к win64 или win32 в соответствии с вашей системной архитектурой
  6. Скопируйте flac.exe и вставьте его в C:WindowsSystem32 этот каталог.

Попробуйте запустить свой код. Если он выполняется успешно, нет необходимости выполнять последний шаг. Если нет, выполните также 7-й шаг.

  1. Удалить .exe . т.е. Переименовать его в flac

Мне тоже пришлось выполнить последний шаг. Вот и все

Ответ №3:

Попробуйте этот код

 import speech_recognition as sr
from time import ctime
import os
import playsound 
from gtts import gTTS

def speak(audioString):
    tts = gTTS(text=audioString, lang='en')
    tts.save("audio.mp3")
    playsound.playsound("audio.mp3", True)
    os.remove("audio.mp3")

def recordAudio():
    # Record Audio
    r = sr.Recognizer()
    
    with sr.Microphone() as source:
        print("Say somthing...")
        audio = r.listen(source, phrase_time_limit=2)

    data = ""
    try:
        data = r.recognize_google(audio)
        print("You said: "   data)
    except sr.UnknownValueError:
        print("Google Speech Recognition could not understand audio")
    except sr.RequestError as e:
        print("Could not request results from Google Speech Recognition service; {0}".format(e))

    return data

def jarvis(data):
    if "how are you" in data:
        speak("I am fine")

    if "what time" in data:
        speak(ctime())

speak("Hi Osama, what can I do for you?")

while True:
    data = recordAudio()
    jarvis(data)
 

Комментарии:

1. хорошо, проблема с вашим devise не в коде

2. Я использую Linux, я не знаю о Windows, так что извините!

3. «Попробуйте этот код» не является ответом ни на один вопрос.