簡體   English   中英

如何使用 Speech_recognition 修復模塊導入錯誤?

[英]How to fix Module Import Error with speech_recognition?

我目前正在嘗試編寫一些代碼來聽您說的話,然后將其轉換為莫爾斯電碼。

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

num = 1


def assistant_speaks(output):
    global num 

    # num to rename every audio file 
    # with different name to remove ambiguity 
    num += 1
    print("BRO : ", output)

    toSpeak = gTTS(text = output, lang ='en-uk', slow = False)
    # saving the audio file given by google text to speech
    file = str(num)+".mp3 "
    toSpeak.save(file)

    playsound.playsound(file, True)

    os.remove(file)



def get_audio():
    rObject = sr.Recognizer()
    audio = ''

    with sr.Microphone() as source:
        print("Speak...")
    
        # recording the audio using speech recognition
        audio = rObject.listen(source, phrase_time_limit = 5)
    print("Stop.") # limit 5 secs

    try:

        text = rObject.recognize_google(audio, language ='en-US')
        print("You : ", text)
        return text

    except:
        speak = "Could not understand your audio, please try again!"
        assistant_speaks(speak, grootmode)
        return 0 

但是,Python 給了我一些問題。 即,它不識別 Speech_recognition 存在。

$ C:/Users/J/AppData/Local/Programs/Python/Python38/python.exe d:/J/Documents/p
ython_files/raspi/morse.py
Traceback (most recent call last):
  File "d:/J/Documents/python_files/raspi/morse.py", line 1, in <module>
    import speech_recognition as sr
ModuleNotFoundError: No module named 'speech_recognition'

但是,確實如此。

cefpython3        66.0
certifi           2020.12.5
chardet           4.0.0
click             7.1.2
gTTS              2.2.2
idna              2.10
pip               21.0.1
playsound         1.2.2
PyAudio           0.2.11
pywin32           300
requests          2.25.1
six               1.15.0
SpeechRecognition 3.8.1
urllib3           1.26.3
winspeech         1.0.1

據我所知,我只有 python 版本 3.8.8。 我使用 Visual Studio Code 作為編輯器,我使用 Windows 10 作為我的操作系統。

你能分享更多信息嗎?

  • 您是如何安裝 python package 的? (pip3.8, Anaconda, ...)
  • 如果您使用的是 pip,您可以顯示: pip3.8 list
  • 你用的是虛擬環境嗎?
  • 根據https://pypi.org/project/SpeechRecognition/ ,您可以在安裝后進行快速測試。 你可以試試: python3.8 -m speech_recognition嗎?

編輯:

好的,現在我們知道speech_recognition模塊可以在python3.8下運行。

關於vs代碼的問題:

你是如何執行腳本的(通過終端輸入python3.8 <name of your script>或通過 vs code 運行按鈕)?

假設(是的,我知道這很危險)您通過這些步驟(在 vs code 網站上)安裝它並通過 vs code 運行它,您能展示一下環境嗎?

https://code.visualstudio.com/docs/python/environments

注意:默認情況下,VS Code 在調試代碼時使用 python:pythonPath 設置標識的解釋器。

狀態欄總是顯示當前的解釋器。

在此處輸入圖像描述

在最小能量閾值上:

pypi 頁面上的故障排除指南可能會提供一些見解:

recognizer_instance.energy_threshold ...這個值完全取決於你的麥克風或音頻數據。 沒有一刀切的價值,但好的價值通常在 50 到 4000 之間。

識別器在第一次開始收聽后無法立即識別語音。

identifyr_instance.energy_threshold 屬性可能設置為太高而無法開始的值,然后通過動態能量閾值調整自動降低。 在它處於良好水平之前,能量閾值是如此之高,以至於語音只是被認為是環境噪聲。

解決辦法是降低這個閾值,或者提前調用recognizer_instance.adjust_for_ambient_noise,它會自動將閾值設置為一個合適的值。

這可能很困難,因為“快速測試”腳本不允許修改。 您可以嘗試從 repo 中獲取main .py並對其進行調整(這樣您就可以調整 energy_threshold 值)。

列出所有麥克風可能也是值得的,以確保您使用的是正確的麥克風。

import speech_recognition as sr
for index, name in enumerate(sr.Microphone.list_microphone_names()):
    print("Microphone with name \"{1}\" found for `Microphone(device_index={0})`".format(index, name))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM