-1
# Import packages
import speech_recognition as sr
import os
from gtts import gTTS
import datetime
import warnings
import calendar
import random
import wikipedia

# Ignore any warning messages
warnings.filterwarnings('ignore')


# Record audio and return as string
def recordAudio():
    # record the audio
    r = sr.Recognizer()  # creating a speech recogniser

    # open the mic and start recording
    with sr.Microphone() as source:
        print('Say Something:')
        audio = r.listen(source)
    # Use google speech recognition
    data = ''
    try:
        data = r.recognize_google(audio)
        print('You said : ' + data)
    except sr.UnknownValueError:
        print('Google Speech recognition not undstand you, unknown error')
    except sr.RequestError as e:
        print('Request results from google speechrecognition service error' + e)

    return data


recordAudio()


# A fuction to get the virtual assistant response
def assistantResponse(text):
    print(text)

    # convert the text to speech
    myobj = gTTS(text=text, lang='en', slow=False)

    # save the audio to a file
    myobj.save('assistant_response.mp3')

    # SPlay the converted file
    os.system('start assistant_response.mp3')


# A function for wake word
def wakeWord(text):
    WAKE_WORDS = {'hey bongo', 'hey man', 'hey computer', 'okay google'}  # list of wake words

    text = text.lower()  # convert the text to lower case words

    # Check to see if user input is a wake eord
    for phrase in WAKE_WORDS:
        if phrase in text:
            return True

    # If The wake word is not found in text from the loop , soo it returns False
    return False


# A function to get the current date
def getDate():
    now = datetime.datetime.now()
    my_date = datetime.datetime.today()
    weekday = calendar.day_name[my_date.weekday()]  # sunday
    monthNum = now.month
    dayNum = now.day

    # A list of months
    month_names = ['January', 'February', 'March', ' April', 'May', 'June', 'July', 'August', 'September', ' October',
                   'November', 'December']

    # A list of ordinal Numbers
    ordinalNumbers = ['1st', '2nd', '3rd', ' 4th', '5th', '6th', '7th', '8th', '9th', '10th', '11th', '12th', '13th',
                      '14th', '15th', '16th',
                      '17th', '18th', '19th', '20th', '21st', '22nd', '23rd', '24rd', '25th', '26th', '27th', '28th',
                      '29th', '30th', '31st']

    return 'Today is ' + weekday + ' ' + month_names[monthNum - 1] + ' the ' + ordinalNumbers[dayNum - 1] + ' .'


# Fuction to return greeting
def greeting(text):
    # Greeting inputs
    GREETING_INPUTS = ['hi', 'hey', 'hola', 'wassup', 'hello']

    # Greeting response
    GREETING_RESPONSES = ['howdy', 'all that good', 'hello master', 'heythere']

    # If users input is a greeting, then return a randomly chosen greetng response
    for word in text.split():
        if word.lower() in GREETING_INPUTS:
            return random.choice(GREETING_RESPONSES) + '.'

    # If no greeting was detected
    return ''


# A functions to get persons name from text
def getPerson(text):
    wordList = text.split()  # splits the text to words

    for i in range(0, len(wordList)):
        if i + 3 <= len(wordList) - 1 and wordList[i].lower() == 'who' and wordList[i + 1].lower() == 'is':
            return wordList[i + 2] + ' ' + wordList[i + 3]


while True:

    # record the audio
    text = recordAudio()
    response = ''

    # check for the wake word / phrase
    if (wakeWord(text) == True):

        # check for greetings by the user
        response = response + greeting(text)

        # check to see if the user has said anything about data
        if ('date' in text):
            get_date = getDate()
            response = response + ' ' + get_date

        # check to see if the user said 'who is'
        if ('who is' in text):
            person = getPerson(text)
            wiki = wikipedia.summary(person, sentences=2)
            response = response + ' ' + wiki

        # assistant respond back using audio and text from response
        assistantResponse(response)

below is the error

C:\Users\90551\PycharmProjects\YazılımBilimi\venv\Scripts\python.exe C:/Users/90551/PycharmProjects/YazılımBilimi/voiceassistan.py
Traceback (most recent call last):
  File "C:\Users\90551\PycharmProjects\YazılımBilimi\venv\lib\site-packages\speech_recognition\__init__.py", line 108, in get_pyaudio
    import pyaudio
ModuleNotFoundError: No module named 'pyaudio'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/90551/PycharmProjects/YazılımBilimi/voiceassistan.py", line 37, in <module>
    recordAudio()
  File "C:/Users/90551/PycharmProjects/YazılımBilimi/voiceassistan.py", line 21, in recordAudio
    with sr.Microphone() as source:
  File "C:\Users\90551\PycharmProjects\YazılımBilimi\venv\lib\site-packages\speech_recognition\__init__.py", line 79, in __init__
    self.pyaudio_module = self.get_pyaudio()
  File "C:\Users\90551\PycharmProjects\YazılımBilimi\venv\lib\site-packages\speech_recognition\__init__.py", line 110, in get_pyaudio
    raise AttributeError("Could not find PyAudio; check installation")
AttributeError: Could not find PyAudio; check installation

Process finished with exit code 1

I installed PyAudio after it says "Download PyAudio" but it still says download PyAudio.
What module or packages should I download more??. I do not debug it ı only installed PyAudio.
This is all of the information that I know.
İf I will try to give more information if you can't figure out how to solve it:). Thanks all Stackoverflow community for help.

  • 1
    Please don't expect others to be "quick", your urgency is not theirs. – drekbour Aug 25 '20 at 07:09
  • ok ı just write it for information stackoverflow was saying "youre full of code please add some information" and ı add a sentence like this actually you there is nothing like this ı got plenty of time –  Aug 25 '20 at 07:19

2 Answers2

0

sorry I didn't do this sooner, but start with copy and pasting this into terminal

pip install PyAudio

if this doesn't work don't worry it happened to me aswell, you will have to download home-brew as this allows us to download portaudio, copy and paste this into terminal.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

this will download Homebrew.

Once this is downloaded then copy and paste this into terminal

brew install portaudio

portaudio allows us to download pyaudio.

then try installing the package pyaudio through pycharm or whatever coding program you use.

jottbe
  • 4,228
  • 1
  • 15
  • 31
Keemsauce
  • 1
  • 1
0

If you try to install PyAudio using pip, you might get an error, so try to install it using pipwin
Install pipwin by,

pip install pipwin

Then install PyAudio by,

pipwin install PyAudio
MD Mushfirat Mohaimin
  • 1,966
  • 3
  • 10
  • 22
Block
  • 159
  • 1
  • 6