• דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    • הרשמה
    • התחברות
    1. דף הבית
    2. יעקב יצחק
    3. פוסטים
    י מנותק
    • פרופיל
    • עוקב אחרי 7
    • עוקבים 2
    • נושאים 66
    • פוסטים 301
    • קבוצות 0

    פוסטים

    פוסטים אחרונים הגבוה ביותר שנוי במחלוקת
    • תגובה: 🎙️🎯 זיהוי דיבור בעברית – חינם, איכותי, מדויק!!

      תגובה: 🎙️🎯 זיהוי דיבור בעברית – חינם, איכותי, מדויק!!
      ניסיתי לכתוב כזה קוד - אבל דרך הוויספר של גרוק
      קוד גרוק.py
      מה דעתכם?
      שימו לב שצריך מפתח API של GROK בשורה 21

      import os
      import tempfile
      import logging
      import requests
      from flask import Flask, request, jsonify
      from pydub import AudioSegment
      from rapidfuzz import process, fuzz
      from groq import Groq
      
      # ------------------ Logging Configuration ------------------
      logging.basicConfig(
          level=logging.INFO,
          format="%(asctime)s | %(levelname)s | %(message)s",
          datefmt="%H:%M:%S"
      )
      
      app = Flask(__name__)
      
      # Initialize Groq client (Make sure GROQ_API_KEY environment variable is set)
      # export GROQ_API_KEY="your_api_key_here"
      client = Groq(api_key=os.environ.get("GROQ_API_KEY"))
      
      # List of possible keywords to match
      KEYWORDS = ["בני ברק", "ירושלים", "תל אביב", "חיפה", "אשדוד"]
      
      # ------------------ Helper Functions ------------------
      
      def add_silence(input_path: str) -> AudioSegment:
          """
          Add one second of silence at the beginning and end of the audio file.
          This improves speech recognition accuracy, especially for short recordings.
          """
          logging.info("Adding one second of silence to audio file...")
          audio = AudioSegment.from_file(input_path)
          silence = AudioSegment.silent(duration=1000)  # 1000ms = 1 second
          return silence + audio + silence
      
      def recognize_speech_groq(audio_path: str) -> str:
          """
          Perform speech recognition using Groq's Whisper-v3 model.
          """
          try:
              logging.info("Sending audio to Groq API (whisper-large-v3)...")
              with open(audio_path, "rb") as file:
                  transcription = client.audio.transcriptions.create(
                    file=(os.path.basename(audio_path), file.read()),
                    model="whisper-large-v3",
                    language="he", # Specify Hebrew to guide the model
                    response_format="json"
                  )
              
              text = transcription.text
              logging.info(f"Recognized text: {text}")
              return text
          except Exception as e:
              logging.error(f"Error during speech recognition with Groq: {e}")
              return ""
      
      def find_best_match(text: str) -> str | None:
          """
          Find the closest matching word from the predefined KEYWORDS list.
          """
          if not text:
              return None
      
          result = process.extractOne(text, KEYWORDS, scorer=fuzz.ratio)
          if result and result[1] >= 80:
              logging.info(f"Best match found: {result[0]} (confidence: {result[1]}%)")
              return result[0]
      
          logging.info("No sufficient match found.")
          return None
      
      # ------------------ API Endpoint ------------------
      
      @app.route("/upload_audio", methods=["GET"])
      def upload_audio():
          """
          Endpoint to receive an audio file via GET parameter,
          download it, process it, and return the recognized text with the best match.
          Example usage:
          /upload_audio?file_url=https://example.com/audio.wav
          """
          file_url = request.args.get("file_url")
          if not file_url:
              logging.error("Missing 'file_url' parameter.")
              return jsonify({"error": "Missing 'file_url' parameter"}), 400
      
          logging.info(f"Received file URL: {file_url}")
      
          try:
              # Step 1: Download the audio file
              response = requests.get(file_url, timeout=15)
              if response.status_code != 200:
                  logging.error(f"Failed to download audio file. Status code: {response.status_code}")
                  return jsonify({"error": "Failed to download audio file"}), 400
      
              # Create a temporary directory to handle the files
              with tempfile.TemporaryDirectory() as temp_dir:
                  temp_input_path = os.path.join(temp_dir, "input_audio")
                  temp_processed_path = os.path.join(temp_dir, "processed_audio.wav")
                  
                  # Save downloaded file
                  with open(temp_input_path, "wb") as f:
                      f.write(response.content)
                  logging.info(f"Audio downloaded and saved temporarily.")
      
                  # Step 2: Add silence and export as WAV (Whisper accepts specific formats like wav, mp3, m4a)
                  processed_audio = add_silence(temp_input_path)
                  processed_audio.export(temp_processed_path, format="wav")
      
                  # Step 3: Speech recognition using Groq
                  recognized_text = recognize_speech_groq(temp_processed_path)
      
                  # Step 4: Matching against predefined keywords
                  matched_word = find_best_match(recognized_text)
      
                  if matched_word:
                      logging.info(f"Final matched keyword: {matched_word}")
                  else:
                      logging.info("No keyword match found.")
      
          except Exception as e:
              logging.error(f"Processing error: {e}")
              return jsonify({"error": "Error processing the audio file"}), 500
      
          return jsonify({
              "recognized_text": recognized_text,
              "matched_word": matched_word if matched_word else "No match found"
          })
      
      # ------------------ Run Server ------------------
      
      if __name__ == "__main__":
          port = int(os.environ.get("PORT", 5000))
          logging.info(f"Server running on port {port}")
          app.run(host="0.0.0.0", port=port)
      
      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • RE: בעייה במודל הודעות אישיות בapi

      @איל-משולש יש שם שלוחה 0/0/1 של אימות זיהוי - דרך שרת שנסגר

      פורסם בטיפים עצות והדגמות מהמשתמשים
      י
      יעקב יצחק
    • ניתוב שיחות ללא עלות יחידות - בעייה

      בקשר למודל של @brochabar כאן, הדבקתי בדפדפן את כתובת הphp של "הגבלת מספר מאזינים" והדף לא קיים.
      כדאי ליצור אותו מחדש כדי שמודל הניתוב יעבוד, אבל הקישור ש @brochabar מביא שם מפנה לדף שנמחק (כנראה בעקבות מחיקת הקוד).
      אם יש למישהו איך לעזור בעניין (אולי @אהרן-שובקס שכתב כאן שהקוד המחוק שלו ירצה לשחזר אותו או לפרסם אותו) - תודה מראש.

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • RE: הערות ותגובות על האינדקס של מודלי API

      https://f2.freeivr.co.il/post/122508 אני לא בטוח שאני מחדש משהו

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • RE: שרת תיווך לסקריפטים של גוגל

      @איל-משולש זה קשור לקוד הזה?

      פורסם בטיפים עצות והדגמות מהמשתמשים
      י
      יעקב יצחק
    • RE: רישום לצינתוקים אישיים בצורה המהירה ביותר וללא API!

      @CUBASE מה אתה כן מציע לעשות? תענה כאן אולי

      פורסם בטיפים עצות והדגמות מהמשתמשים
      י
      יעקב יצחק
    • RE: רישום לצינתוקים אישיים בצורה המהירה ביותר וללא API!

      @cubase יש לי שלוחת הודעות אישיות כמו כאן, המודל הזה אמור לעזור לי?
      אם כן, מה אני צריך לכתוב כשם רשימת צינתוקים בהגדרה:

      שליחת צינתוק אישי הרשימה לבדיקה
      record_ok_end_run_tzintuk_private_list=שם הרשימה
      menu_record_options_2=record_ok_end_run_tzintuk_private
      
      פורסם בטיפים עצות והדגמות מהמשתמשים
      י
      יעקב יצחק
    • RE: שליחת צינתוק בpost

      @החסיד כאן משמע שאפשר: צורות אפשרויות להגשת רשימת המספרים לחיוג:
      כאשר הפניה היא בGET או בPOST שהוא לא jsos (Content-Type: application/json) יש 3 אפשריות:
      עיין שם בהרחבה.

      פורסם בפורום מפתחים API
      י
      יעקב יצחק
    • RE: תגובות: הודעות אישיות + יש לכם הודעה אישית חדשה - מדריך מסכם

      ההודעה "יש לך הודעה אישית חדשה" לא מושמעת אצלי

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • RE: תגובות: הודעות אישיות + יש לכם הודעה אישית חדשה - מדריך מסכם

      בקשר לשני הפיצ'רים שהצעת בסוף - הם לא יכולים לעבוד ביחד, כמו שכתב כאן @איל-משולש
      (אם כי מעניין באמת למה ההגדרה של השארת הודעה אישית נקראת api)

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • RE: תגובות: הודעות אישיות + יש לכם הודעה אישית חדשה - מדריך מסכם

      @אA כתב:

      זה מצנתק למספר יחיד מתוך כל הרשימה.
      כלומר, תכניס את המספר של הרשימה הכללית של המערכת וזה יצנתק למספר שנמצא בתוך הרשימה.

      אפשר גם מספר רשימת תפוצה? רשימת הצינתוקים שלי היא דרך api, לככאורה אין מספר סידורי שאפשר להכניס (חשבתי להדביק את כל הhttps:/script.google.com/macros/s וכו' אבל לא נראה לי שזה יעבוד)
      אם מוגדר שלא יבקש אישור על ההקשה - record_for_id_ask_ok=no, כבר אין כ"כ עניין בהקראת המספר ועדיף לבטל גם אותה (אם יש לזה הגדרה)

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • בעייה במודל הודעות אישיות בapi

      @HMJE22 כתב בהודעות אישיות, ושמיעת הודעה "יש לך הודעה אישית חדשה", וכן אופציה לצינתוק:

      שלוחה 1 - (דהיינו שלוחה 0/0/1/), שלוחת api לאימות הזיהוי, כך שמי שינסה להקשיב להודעות של השני, אין גישה.

      למעשה כשאני מקיש 01 (ונמצא בשלוחה 0/0/1) יש הודעת "אין מענה משרת הapi" והשיחה חוזרת לשלוחה הראשית.

      פורסם בטיפים עצות והדגמות מהמשתמשים
      י
      יעקב יצחק
    • שאלה במודל הודעה אישית

      תגובה: הסבר | מגוון אופציות להודעות אישיות כמו בוואצפ פון | מתעדכן

      @נר-יצחק כתב בהסבר | מגוון אופציות להודעות אישיות כמו בוואצפ פון | מתעדכן:

      שלוחה 0/0/2/2/1/

      type=add_id_to_list
      add_id_to_list_location_list=/999/WhiteList
      add_id_to_list_end_goto=/0/0/Hash
      add_id_to_list_error_end_goto=/0/0/Hash
      יש לשנות את קבצי המערכת הבאים לקובץ שקט (מצורף)

      לא כתוב מה קבצי המערכת שצריכים להשתנות לקובץ שקט.
      האם זה M1221 וM1122?
      עריכה: בפוסט המקורי של @hmje22 זה כתוב בפירוש, @נר-יצחק אולי תערוך אצלך.

      פורסם בטיפים עצות והדגמות מהמשתמשים
      י
      יעקב יצחק
    • RE: שליחת וקבלת הודעות וואטסאפ פון באינטרנט, בעיצוב זהה לזה של וואטסאפ, פתוח בנטפרי

      @DHOC979 יש אפשרות לכל המשתמשים למחוק הודעות!
      כדאי שתהיה ליוצר אפשרות לבחור את זה.

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • RE: הקול החדש ב-TTS של ימות חזר!

      @המומחה כתב:

      אני משתמש בשלוחה שמקלידים דרך הפלאפון,

      מה ההגדרה בשלוחה?

      פורסם בטיפים עצות והדגמות מהמשתמשים
      י
      יעקב יצחק
    • המודלים של קו בקליק עדיין קיימים?

      @avrham כתב במקבץ מודולים מבית קו בקליק וקו מהיר פתרונות תקשורת:

      שלום לכולם, עקב ויש לנו בעיה בשרת הנוכחי אנא מחליפים שרת, לכן שום הגדרה לא תעבוד (לכל מי שפיתחנו לו הגדרות פרטיות בתשלום, שים לב שההגדרה שלך עברה כבר לשרת החדש) בעזרת ה' עד סוף שבוע הבא יתפרסם השרת החדש, (יתכן ולא נספיק העל אז נפרסם את השרת החלופי)

      ניסיתי להגדיר שלוחת הקלדת קבצי tts למערכת והיא לא עובדת, השלוחות שם לא עודכנו לשרת החדש?

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • RE: יש לי מערכת הרשמה לשבת בימות המשיח אני מחפש פתרון ללא API וללא שרת? קיים?

      @eliu מה אכפת לך להשתמש בשלוחה שעובדת דרך api?
      אתה צריך רק להדביק כמה שורות.

      פורסם בשאלות ועזרה הדדית
      י
      יעקב יצחק
    • RE: שיתוף| קבצי אקסל עם שאלות לקליקי🎉✨

      @R.E.T-מערכות מעניין אותך?

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • RE: הערות ותגובות על האינדקס של מודלי API

      https://f2.freeivr.co.il/post/190570

      פורסם בעזרה הדדית למשתמשים מתקדמים
      י
      יעקב יצחק
    • RE: אני רוצה לשלוח אימעיל שיכנס ישר לשלוחה

      @9121800 כתב:

      נראה לי שעשו פעם משהו אבל היה מסובך

      אתה מתכוון לזה? זה לא כזה מסובך.

      פורסם בשאלות ועזרה הדדית
      י
      יעקב יצחק