• ×”×Ø×©×ž×”
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקה ×§×™×©×•×Ø×™×
    • פוהטים ××—×Ø×•× ×™×
    • ×§×‘×œ×Ŗ התראות מהדפדפן
    • ×ž×©×Ŗ×ž×©×™×
    • חיפוש בהגדרות ×”×ž×Ŗ×§×“×ž×•×Ŗ
    • חיפוש גוגל ×‘×¤×•×Ø×•×
    • ניהול ×”×ž×¢×Ø×›×Ŗ
    • ניהול ×”×ž×¢×Ø×›×Ŗ - שרת private

    šŸŽ™ļøšŸŽÆ זיהוי דיבור בעברית – חינם, איכותי, מדויק!!

    עזרה הדדית ×œ×ž×©×Ŗ×ž×©×™× ×ž×Ŗ×§×“×ž×™×
    8
    29
    474
    טוען פוהטים נוהפים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי ×œ×¤×Ø×”× תגובה
    נושא זה נמחק. רק ×ž×©×Ŗ×ž×©×™× עם הרשאות ×ž×Ŗ××™×ž×•×Ŗ יוכלו ×œ×¦×¤×•×Ŗ בו.
    • Y
      y6714453 @פלוה נערך ×œ××—×Ø×•× ×” על ידי

      @פלוה כתב ×‘šŸŽ™ļøšŸŽÆ זיהוי דיבור בעברית – חינם, איכותי, מדויק!!:

      @y6714453
      אשמח ×œ×™×¦×•×Ø ××™×Ŗ×š קשר בנושא!

      y6714453@gmail.com

      תגובה 1 תגובה אחרונה תגובה ציטוט 1
      • הוזכר על-ידי  Y y6714453 
      • י
        יעקב 1 נערך ×œ××—×Ø×•× ×” על ידי

        אשמח ×œ×¢×–×Ø×”. עשיתי את הקוד הזה ברנדר.
        מה ××ž×•×Ø ×œ×”×™×•×Ŗ ×ž×•×’×“×Ø בשלוחה של הזיהוי דיבור? (זה קוד ×©××ž×•×Ø לשלוח אלי את ×”×ž×Ø×Ŗ הדיבור של המאזין

        import os
        import tempfile
        import logging
        import requests
        from flask import Flask, request, jsonify
        from pydub import AudioSegment
        import speech_recognition as sr
        
        # ------------------ Logging ------------------
        logging.basicConfig(
            level=logging.INFO,
            format="%(asctime)s | %(levelname)s | %(message)s",
            datefmt="%H:%M:%S"
        )
        
        app = Flask(__name__)
        
        # ------------------ Telegram Config ------------------
        
        TELEGRAM_BOT_TOKEN = "***"
        TELEGRAM_CHAT_ID = "***"
        
        # ------------------ Helper Functions ------------------
        
        def add_silence(input_path: str) -> AudioSegment:
            audio = AudioSegment.from_file(input_path, format="wav")
            silence = AudioSegment.silent(duration=1000)
            return silence + audio + silence
        
        def recognize_speech(audio_segment: AudioSegment) -> str:
            recognizer = sr.Recognizer()
            try:
                with tempfile.NamedTemporaryFile(suffix=".wav", delete=True) as temp_wav:
                    audio_segment.export(temp_wav.name, format="wav")
                    with sr.AudioFile(temp_wav.name) as source:
                        data = recognizer.record(source)
                    text = recognizer.recognize_google(data, language="he-IL")
                    logging.info(f"Recognized text: {text}")
                    return text
            except sr.UnknownValueError:
                return ""
            except Exception as e:
                logging.error(f"Speech recognition error: {e}")
                return ""
        
        def send_to_telegram(text: str, file_url: str):
            message = f"šŸŽ™ļø הודעה חדשה ×ž×”×ž×¢×Ø×›×Ŗ:\n\n{text}\n\nšŸ”— קובׄ ההקלטה:\n{file_url}"
            url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
            requests.post(url, data={"chat_id": TELEGRAM_CHAT_ID, "text": message})
        
        # ------------------ API Endpoint ------------------
        
        @app.route("/upload_audio", methods=["GET"])
        def upload_audio():
            file_url = request.args.get("file_url")
            if not file_url:
                return jsonify({"error": "Missing 'file_url' parameter"}), 400
        
            logging.info(f"Downloading audio from: {file_url}")
            try:
                response = requests.get(file_url, timeout=15)
                if response.status_code != 200:
                    return jsonify({"error": "Failed to download audio file"}), 400
        
                with tempfile.NamedTemporaryFile(suffix=".wav", delete=True) as temp_input:
                    temp_input.write(response.content)
                    temp_input.flush()
        
                    processed_audio = add_silence(temp_input.name)
                    recognized_text = recognize_speech(processed_audio)
        
                    if recognized_text:
                        send_to_telegram(recognized_text, file_url)
                        return jsonify({"recognized_text": recognized_text})
                    else:
                        send_to_telegram(" לא זוהה דיבור.", file_url)
                        return jsonify({"recognized_text": ""})
        
            except Exception as e:
                logging.error(f"Error: {e}")
                return jsonify({"error": str(e)}), 500
        
        # ------------------ Run ------------------
        if __name__ == "__main__":
            port = int(os.environ.get("PORT", 5000))
            app.run(host="0.0.0.0", port=port)
        
        Y תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • Y
          y6714453 @יעקב 1 נערך ×œ××—×Ø×•× ×” על ידי

          @יעקב-1
          בשלוחה אתה ×¦×Ø×™×š ×œ×”×’×“×™×Ø שישלח את ההקלטה לשרת
          לכן תגדיר כך

          type=api
          api_link=שים את הלינק של השרת
          
          api_000=stockname,no,record,/9,,no,yes
          
          ביטול השליחה בניתוק (מומלׄ)
          api_hangup_send=no
          
          ×ž×¢×‘×Ø בהיום
          api_end_goto=/שים את הנתיב ×œ×ž×¢×‘×Ø
          

          ואל תשכח ×œ×”×¢×œ×•×Ŗ קובׄ שמע בשם 000 לשלוחה ×©××•×ž×Ø משהו כמו "אנא הקלט את ×”×•×“×¢×Ŗ×š, ובהיום הקש ×”×•×œ×ž×™×Ŗ"

          י תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • י
            יעקב 1 @y6714453 נערך ×œ××—×Ø×•× ×” על ידי יעקב 1

            @y6714453 תודה!

            Y C 2 תגובות תגובה אחרונה תגובה ציטוט 0
            • Y
              y6714453 @יעקב 1 נערך ×œ××—×Ø×•× ×” על ידי y6714453

              @יעקב-1
              בשביל למנוע שגיאה - ×Ŗ×—×œ×™×£ בהגדרות השלוחה במקום

              api_000=stockname,no,record,/9,,no,yes
              

              את זה:

              api_000=file_url,no,record,/9,,no,yes
              

              בגלל שבקוד - הוא מחפש ×¤×Ø×ž×˜×Ø בשם file_url

              לפי השורה הזאת בקוד

                  file_url = request.args.get("file_url")
              

              י תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • C
                CUBASE @יעקב 1 נערך ×œ××—×Ø×•× ×” על ידי

                @יעקב-1 ×”×¦×œ×—×Ŗ ×œ×”×Ŗ×§×™×Ÿ ffmpeg על Render בלי שהוא קרה ×‘×Ŗ×”×œ×™×š הבנייה??

                י Y 2 תגובות תגובה אחרונה תגובה ציטוט 0
                • י
                  יעקב 1 @CUBASE נערך ×œ××—×Ø×•× ×” על ידי

                  @CUBASE כתב ×‘šŸŽ™ļøšŸŽÆ זיהוי דיבור בעברית – חינם, איכותי, מדויק!!:

                  ffmpeg

                  לא קרה

                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • י
                    יעקב 1 @y6714453 נערך ×œ××—×Ø×•× ×” על ידי

                    @y6714453 יש לי ×‘××ž×Ŗ שגיאות בגלל נתיב שגוי
                    מה זה ה9 בשורה הזאת?
                    api_000=file_url,no,record,/9,,no,yes

                    Y תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • Y
                      y6714453 @יעקב 1 נערך ×œ××—×Ø×•× ×” על ידי y6714453

                      @יעקב-1
                      איפה ההקלטה × ×©×ž×Ø×Ŗ
                      ציטוט מהאשכול של המודול:

                      ×”×¢×Ø×š הרביעי (הקלטה)
                      ×‘×¢×Ø×š זה × ×™×Ŗ×Ÿ ×œ×”×’×“×™×Ø היכן ×Ŗ×™×©×ž×Ø ההקלטה ×‘×ž×¢×Ø×›×Ŗ
                      ברירת מחדל זה × ×©×ž×Ø בתיקייה ×©×ž×•×’×“×Ø×Ŗ ב-api_dir
                      × ×™×Ŗ×Ÿ ×œ×”×’×“×™×Ø מיקום שונה
                      לדוגמה
                      /8 (הלש שמונה)
                      ×‘×ž×§×Ø×” כזה ההקלטה ×Ŗ×™×©×ž×Ø בשלוחה 8
                      הערה: חובה לשים / ×‘×”×Ŗ×—×œ×”. אהור לשים / בהוף

                      י תגובה 1 תגובה אחרונה תגובה ציטוט 1
                      • Y
                        y6714453 @CUBASE נערך ×œ××—×Ø×•× ×” על ידי

                        @CUBASE כתב ×‘šŸŽ™ļøšŸŽÆ זיהוי דיבור בעברית – חינם, איכותי, מדויק!!:

                        @יעקב-1 ×”×¦×œ×—×Ŗ ×œ×”×Ŗ×§×™×Ÿ ffmpeg על Render בלי שהוא קרה ×‘×Ŗ×”×œ×™×š הבנייה??

                        למה שיקרוה? זה נחשב הפריה כבדה, או לא × ×Ŗ×ž×›×Ŗ??

                        C תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • י
                          יעקב 1 @y6714453 נערך ×œ××—×Ø×•× ×” על ידי

                          @y6714453 ××ž×•×Ø×” ×œ×”×™×•×Ŗ ×Ø×©×•×ž×” שם השלוחה שבה ההקלטה ×Ŗ×™×©×ž×Ø או שממנה יקח את ההקלטה ×œ×”×ž×Ø×”? הוא כל הזמן ×ž×—×–×™×Ø שגיאה שלא מוצא את הנתיב 6&file_url=/9/000.wav

                          Y תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • Y
                            y6714453 @יעקב 1 נערך ×œ××—×Ø×•× ×” על ידי y6714453

                            @יעקב-1 כתב ×‘šŸŽ™ļøšŸŽÆ זיהוי דיבור בעברית – חינם, איכותי, מדויק!!:

                            @y6714453 ××ž×•×Ø×” ×œ×”×™×•×Ŗ ×Ø×©×•×ž×” שם השלוחה שבה ההקלטה ×Ŗ×™×©×ž×Ø או שממנה יקח את ההקלטה ×œ×”×ž×Ø×”? הוא כל הזמן ×ž×—×–×™×Ø שגיאה שלא מוצא את הנתיב 6&file_url=/9/000.wav

                            השלוחה שבה ההקלטה ×Ŗ×™×©×ž×Ø - בלי קשר למה שהשרת מקבל, (אתה יכול גם ×œ×”×©××™×Ø את ×”×¢×Ø×š ריק ואז ההקלטה ×Ŗ×™×©×ž×Ø בתיקייה api_dir).
                            זה לא ההיבה לשגיאה.

                            ×Ŗ×¢×œ×” פה את השגיאה שאתה מקבל

                            י תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • י
                              יעקב 1 @y6714453 נערך ×œ××—×Ø×•× ×” על ידי יעקב 1

                              @y6714453
                              -כתבתי בשלוחה במקום 9 - 9715, והוא לא מוצא נתיב
                              11:18:22 | מידע | ×ž×•×Ø×™×“ אודיו מ: https://www.call2all.co.il/ym/ivr2/9715/000.wav
                              11:18:23 | שגיאה | הורדת הקובׄ נכשלה , הטטוה: 404
                              11:18:23 | מידע | 127.0.0.1 - - [21/××•×§×˜×•×‘×Ø/2025 11:18:23] " קבל /upload_audio?ApiCallId=41c5197c930a84efea2dd8376b949af8994aa0cc&ApiYFCallId=6e6431b4-32d1-4b97-931b-f908c52a096d&ApiDID=&ApiRealDID=&ApiPhone=&ApiExtension=9713&ApiTime=1761045496&file_url=/9715/000.wav HTTP/1.1 " 400 -
                              .

                              C תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • C
                                CUBASE @יעקב 1 נערך ×œ××—×Ø×•× ×” על ידי CUBASE

                                @יעקב-1 הכתובת אינה נכונה, זה ××ž×•×Ø ×œ×”×™×•×Ŗ

                                https://www.call2all.co.il/ym/api/DownloadFile?token=$token&path=ivr2:/9715/000.wav
                                
                                י תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                • C
                                  CUBASE @y6714453 נערך ×œ××—×Ø×•× ×” על ידי

                                  @y6714453 כתב ×‘šŸŽ™ļøšŸŽÆ זיהוי דיבור בעברית – חינם, איכותי, מדויק!!:

                                  @CUBASE כתב ×‘šŸŽ™ļøšŸŽÆ זיהוי דיבור בעברית – חינם, איכותי, מדויק!!:

                                  @יעקב-1 ×”×¦×œ×—×Ŗ ×œ×”×Ŗ×§×™×Ÿ ffmpeg על Render בלי שהוא קרה ×‘×Ŗ×”×œ×™×š הבנייה??

                                  למה שיקרוה? זה נחשב הפריה כבדה, או לא × ×Ŗ×ž×›×Ŗ??

                                  בעבר × ×™×”×™×Ŗ×™ ×œ×”×Ŗ×§×™×Ÿ את זה ולא הלך לי, ג׳ימיני טען שזו הפריה כבדה מידי, כנראה ×”×™×Ŗ×” בעיה אחרת וג׳ימיני ×—×Ø×˜×˜ ×Ŗ×³×ž×•×— (כמו כל פעם שאין לו מה ×œ×•×ž×Ø..)

                                  @y6714453 כתב ×‘šŸŽ™ļøšŸŽÆ זיהוי דיבור בעברית – חינם, איכותי, מדויק!!:

                                  ואז ההקלטה ×Ŗ×™×©×ž×Ø בתיקייה api_dir

                                  ×˜×¢×•×Ŗ, ההקלטה ×Ŗ×™×©×ž×Ø איפה ×©×ž×•×’×“×Ø ב-api_dir שזו הגדרה מאיפה ייקח את הקבצים בשביל ה-api, לדוג אם ב-api_dir ×ž×•×’×“×Ø /1 אז כשתדפיה id_list_message=f-000 זה ישמיע את הקובׄ /1/000.wav ולא את הקובׄ 000 מהשלוחה הנוכחית

                                  י תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                  • י
                                    יעקב 1 @CUBASE נערך ×œ××—×Ø×•× ×” על ידי

                                    @CUBASE תודה ! עובד לי מעולה
                                    יש אפשרות ×œ×”×’×“×™×Ø שאחרי ×”×”×ž×Ø×” ישמיע למאזין את הטקהט ×©×”×•×ž×Ø והוא יבחר אם לאשר?
                                    או לכה"פ אפשרות שישמע את ההקלטה ×”×Ø×’×™×œ×” שלו ויבחר אם לאשר, כי כרגע ×‘×”×•×œ×ž×™×Ŗ זה מיד ×ž××©×Ø

                                    C 2 תגובות תגובה אחרונה תגובה ציטוט 0
                                    • C
                                      CUBASE @יעקב 1 נערך ×œ××—×Ø×•× ×” על ידי

                                      @יעקב-1 אין לי מושג ×‘×¤×™×™×Ŗ×•×Ÿ

                                      תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                      • C
                                        CUBASE @יעקב 1 נערך ×œ××—×Ø×•× ×” על ידי

                                        @יעקב-1

                                        תבקש מ-gpt או gemini שאת ×”×Ŗ×ž×œ×•×œ ידפיה כך:

                                        id_list_message=t-{the text without '-' '.' '"'}&read=m-3230=confirm,,1,1,,NO,,,,12,,,,,no
                                        

                                        ואם ×”×Ŗ×§×‘×œ ×¤×Ø×ž×˜×Ø confirm ×©×”×¢×Ø×š שלו הוא 1 אז ×”×Ŗ×ž×œ×•×œ ×ž××•×©×Ø ואם 2 אז יש ×œ×Ŗ×ž×œ×œ מחדש ולהדפיה שוב את ×”×Ŗ×ž×œ×•×œ כדלעיל

                                        תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                        • י
                                          יעקב 1 @CUBASE נערך ×œ××—×Ø×•× ×” על ידי יעקב 1

                                          תודה! עובד מעולה

                                          תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                          • ×§
                                            קו ×”×Ø×”×™×˜×™× נערך ×œ××—×Ø×•× ×” על ידי

                                            לכל ×”×¢×•×–×Ø×™× והמהייעים ×‘×¤×•×Ø×•× - אולי מישהו יתנדב ×œ×”×¢×œ×•×Ŗ הדרכה עם הגדרות ברורות מה לשים בכל שלוחה ככה יהיה ×Ŗ×•×¢×œ×Ŗ גם למי שלא יודע עדיין ×œ×”×Ŗ×¢×”×§ עם כל הקודים.
                                            תודה ושוב תודה!!!

                                            תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                            • פוהט ×Ø××©×•×Ÿ
                                              פוהט ××—×Ø×•×Ÿ