Transformers
English
VoiceAssistant
SpeechRecognition
RAG
TextToSpeech
Langchain
FAISS
Ollama
ConversationalAI
VectorDatabase
LLM
Instructions to use foduucom/VoiceAssistant with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use foduucom/VoiceAssistant with Transformers:
# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("foduucom/VoiceAssistant", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| import speech_recognition as sr | |
| from langchain.llms import HuggingFacePipeline | |
| from langchain.chains import RetrievalQA | |
| from langchain.embeddings import HuggingFaceEmbeddings | |
| from langchain.vectorstores import FAISS | |
| from langchain.document_loaders import UnstructuredFileLoader | |
| import os | |
| import torch | |
| import soundfile as sf | |
| from playsound import playsound | |
| from TTS.api import TTS | |
| from langchain.llms import Ollama | |
| # Loading RAG data | |
| loader = UnstructuredFileLoader("Foduu_KnowledgeBase.pdf") | |
| documents = loader.load() | |
| # Open-source embedding model | |
| embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2") | |
| vectorstore = FAISS.from_documents(documents, embeddings) | |
| ollama = Ollama(base_url='http://localhost:11434',model="llama3") | |
| qa = RetrievalQA.from_chain_type(llm=ollama, chain_type="stuff", retriever=vectorstore.as_retriever()) | |
| # Speech recognition setup | |
| r = sr.Recognizer() | |
| tts = TTS(model_name="tts_models/en/ljspeech/glow-tts") | |
| def speak(text): | |
| """ | |
| Converts text to speech using Mozilla TTS, plays the audio, and then deletes the file. | |
| """ | |
| try: | |
| # Generate speech | |
| output_file = "output.wav" | |
| tts.tts_to_file(text=text, file_path=output_file) | |
| # Play the speech | |
| playsound(output_file) | |
| os.remove(output_file) | |
| print(f"Speech played and file {output_file} removed.") | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| def listen(): | |
| """ | |
| Records audio and converts it to text using speech recognition. | |
| """ | |
| with sr.Microphone() as source: | |
| print("Listening...") | |
| audio = r.listen(source) | |
| try: | |
| text = r.recognize_google(audio) | |
| print(f"You said: {text}") | |
| return text | |
| except sr.UnknownValueError: | |
| print("Could not understand audio") | |
| speak('could not understand audio') | |
| return None | |
| except sr.RequestError as e: | |
| print(f"Could not request results from Google Speech Recognition service; {e}") | |
| return None | |
| def process_audio(text): | |
| if text is not None: | |
| try: | |
| response = qa.run(text) | |
| print(response) | |
| speak(response) | |
| except Exception as e: | |
| print(f"An error occurred: {e}") | |
| speak("Sorry, I'm having trouble processing that right now.") | |
| def main(): | |
| """ | |
| Main loop for the voice assistant. | |
| """ | |
| while True: | |
| text = listen() | |
| process_audio(text) | |
| if __name__ == "__main__": | |
| main() | |