דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. רשתות
  4. שיתוף | 'פלאפון מייל' - הגירסא המשופרת של מייל לפלאפון, כולל קבלת ושליחת מיילים דרך הפלאפון, קריינות מקצועית, ועוד...

שיתוף | 'פלאפון מייל' - הגירסא המשופרת של מייל לפלאפון, כולל קבלת ושליחת מיילים דרך הפלאפון, קריינות מקצועית, ועוד...

מתוזמן נעוץ נעול הועבר רשתות
46 פוסטים 13 כותבים 762 צפיות 18 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • האדם החושבה האדם החושב

    @פלמנמוני זאת ספרייה לpython, הבקשות מאחורי הקלעים.
    לכאו' זה הלינק הזה:

    https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-tts:generateContent?key=
    
    פלמנמוניפ מנותק
    פלמנמוניפ מנותק
    פלמנמוני
    מדריכים עימוד
    כתב נערך לאחרונה על ידי
    #37

    @האדם-החושב זהו, שקישור זה לא עבד לי.
    חוששני שצריך דרך גוגל קלאוד, ולכן לא נראה לי שזה כדאי את ההשקעה.
    איזה מפתח API הכנסת?

    האדם החושבה תגובה 1 תגובה אחרונה
    0
    • פלמנמוניפ מנותק
      פלמנמוניפ מנותק
      פלמנמוני
      מדריכים עימוד
      כתב נערך לאחרונה על ידי
      #38

      גירסא 1.1

      מה נוסף?

      • גליון 'אנשי קשר'
      • שליטה במהירות ההקראה בקריינות גוגל קלאוד
      • תוקן באג שהיה במנוע זיהוי דיבור
      תגובה 1 תגובה אחרונה
      1
      • פלמנמוניפ פלמנמוני

        @האדם-החושב זהו, שקישור זה לא עבד לי.
        חוששני שצריך דרך גוגל קלאוד, ולכן לא נראה לי שזה כדאי את ההשקעה.
        איזה מפתח API הכנסת?

        האדם החושבה מנותק
        האדם החושבה מנותק
        האדם החושב
        מדריכים
        כתב נערך לאחרונה על ידי האדם החושב
        #39

        @פלמנמוני

        function tts(text){
          const model = "gemini-2.5-flash-preview-tts"
          const token = "gemini token"
          const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${token}`
          const payload = {
            contents: [{
              parts:[{
                text: text
              }]
            }],
            generationConfig: {
              responseModalities: ["AUDIO"],
              speechConfig: {
                voiceConfig: {
                  prebuiltVoiceConfig: {
                    voiceName: "Kore"
                  }
                }
              }
            },
            model: "gemini-2.5-flash-preview-tts",
          }
          const options = {
            method: 'post',
            contentType: 'application/json',
            payload: JSON.stringify(payload)
          }
          const response = JSON.parse(UrlFetchApp.fetch(url, options))
          console.log(response)
          return response.candidates[0].content.parts[0].inlineData.data
        }
        
        function test(){
          const text = "בדיקת tts gemini";
          const pcmBase64 = tts(text);
          const pcmBytes = Utilities.base64Decode(pcmBase64);
          const blob = Utilities.newBlob(pcmBytes, 'application/octet-stream', 'test.pcm');
          DriveApp.createFile(blob);
        }
        
        

        ואז הורדת הקובץ מהדרייב והמרה בעזרת ffmpeg

        ffmpeg -f s16le -ar 24000 -ac 1 -i test.pcm test.wav
        

        test.wav
        test.pcm

        צריך למצוא דרך להמיר את זה בגוגל סקריפט.

        עריכה:
        הצלחתי

        function tts(text){
          const model = "gemini-2.5-flash-preview-tts"
          const token = "gemini token"
          const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${token}`
          const payload = {
            contents: [{
              parts:[{
                text: text
              }]
            }],
            generationConfig: {
              responseModalities: ["AUDIO"],
              speechConfig: {
                voiceConfig: {
                  prebuiltVoiceConfig: {
                    voiceName: "Kore"
                  }
                }
              }
            },
            model: "gemini-2.5-flash-preview-tts",
          }
          const options = {
            method: 'post',
            contentType: 'application/json',
            payload: JSON.stringify(payload)
          }
          const response = JSON.parse(UrlFetchApp.fetch(url, options))
          return response.candidates[0].content.parts[0].inlineData.data
        }
        
        function createWavFromPcm(pcmBytes, sampleRate, numChannels, bitsPerSample) {
          const byteRate = sampleRate * numChannels * (bitsPerSample / 8);
          const blockAlign = numChannels * (bitsPerSample / 8);
          const dataSize = pcmBytes.length;
          const fileSize = 44 - 8 + dataSize;
        
          const header = [];
        
          function pushString(s) {
            for (let i = 0; i < s.length; i++) header.push(s.charCodeAt(i));
          }
        
          function pushUint32LE(val) {
            header.push(val & 0xFF,
              (val >> 8) & 0xFF,
              (val >> 16) & 0xFF,
              (val >> 24) & 0xFF);
          }
        
          function pushUint16LE(val) {
            header.push(val & 0xFF,
              (val >> 8) & 0xFF);
          }
        
          pushString("RIFF");
          pushUint32LE(fileSize);
          pushString("WAVE");
        
          pushString("fmt ");
          pushUint32LE(16);
          pushUint16LE(1);
          pushUint16LE(numChannels);
          pushUint32LE(sampleRate);
          pushUint32LE(byteRate);
          pushUint16LE(blockAlign);
          pushUint16LE(bitsPerSample);
        
          pushString("data");
          pushUint32LE(dataSize);
          const headerBytes = new Uint8Array(header);
          const out = new Uint8Array(headerBytes.length + pcmBytes.length);
          out.set(headerBytes, 0);
          out.set(pcmBytes, headerBytes.length);
        
          return out;
        }
        
        
        function test(){
          const text = "נשלחה אליך הודעת מייל חדשה בתאריך א כסליו תשפו";
          const pcmBase64 = tts(text);
          const pcmBytes = Utilities.base64Decode(pcmBase64);
          const pcmBlob = Utilities.newBlob(pcmBytes, 'application/octet-stream', 'test.pcm');
          DriveApp.createFile(pcmBlob);
        
          const sampleRate = 24000;
          const channels = 1;
          const bits = 16;
        
          const wavBytes = createWavFromPcm(pcmBytes, sampleRate, channels, bits);
          const wavBlob = Utilities.newBlob(wavBytes, 'audio/wav', 'test.wav');
          DriveApp.createFile(wavBlob);
        }
        
        

        אגב, לגבי שליחת מיילים אפשר לשלוח על ידי שלוחת api במקום לקרוא את הymgr בשלוחת קבלת נתונים (יצטרכו לעשות פריסה של הסקריפט ולהוסיף פונקציית doGet ולהשתיק את הודעת אין מענה משרת api.) כך הוא לא יצטרך בכל ריצה לבדוק את הymgr וכך הסקריפט יהיה מהיר יותר.

        ש ת 2 תגובות תגובה אחרונה
        0
        • האדם החושבה האדם החושב

          @פלמנמוני

          function tts(text){
            const model = "gemini-2.5-flash-preview-tts"
            const token = "gemini token"
            const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${token}`
            const payload = {
              contents: [{
                parts:[{
                  text: text
                }]
              }],
              generationConfig: {
                responseModalities: ["AUDIO"],
                speechConfig: {
                  voiceConfig: {
                    prebuiltVoiceConfig: {
                      voiceName: "Kore"
                    }
                  }
                }
              },
              model: "gemini-2.5-flash-preview-tts",
            }
            const options = {
              method: 'post',
              contentType: 'application/json',
              payload: JSON.stringify(payload)
            }
            const response = JSON.parse(UrlFetchApp.fetch(url, options))
            console.log(response)
            return response.candidates[0].content.parts[0].inlineData.data
          }
          
          function test(){
            const text = "בדיקת tts gemini";
            const pcmBase64 = tts(text);
            const pcmBytes = Utilities.base64Decode(pcmBase64);
            const blob = Utilities.newBlob(pcmBytes, 'application/octet-stream', 'test.pcm');
            DriveApp.createFile(blob);
          }
          
          

          ואז הורדת הקובץ מהדרייב והמרה בעזרת ffmpeg

          ffmpeg -f s16le -ar 24000 -ac 1 -i test.pcm test.wav
          

          test.wav
          test.pcm

          צריך למצוא דרך להמיר את זה בגוגל סקריפט.

          עריכה:
          הצלחתי

          function tts(text){
            const model = "gemini-2.5-flash-preview-tts"
            const token = "gemini token"
            const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${token}`
            const payload = {
              contents: [{
                parts:[{
                  text: text
                }]
              }],
              generationConfig: {
                responseModalities: ["AUDIO"],
                speechConfig: {
                  voiceConfig: {
                    prebuiltVoiceConfig: {
                      voiceName: "Kore"
                    }
                  }
                }
              },
              model: "gemini-2.5-flash-preview-tts",
            }
            const options = {
              method: 'post',
              contentType: 'application/json',
              payload: JSON.stringify(payload)
            }
            const response = JSON.parse(UrlFetchApp.fetch(url, options))
            return response.candidates[0].content.parts[0].inlineData.data
          }
          
          function createWavFromPcm(pcmBytes, sampleRate, numChannels, bitsPerSample) {
            const byteRate = sampleRate * numChannels * (bitsPerSample / 8);
            const blockAlign = numChannels * (bitsPerSample / 8);
            const dataSize = pcmBytes.length;
            const fileSize = 44 - 8 + dataSize;
          
            const header = [];
          
            function pushString(s) {
              for (let i = 0; i < s.length; i++) header.push(s.charCodeAt(i));
            }
          
            function pushUint32LE(val) {
              header.push(val & 0xFF,
                (val >> 8) & 0xFF,
                (val >> 16) & 0xFF,
                (val >> 24) & 0xFF);
            }
          
            function pushUint16LE(val) {
              header.push(val & 0xFF,
                (val >> 8) & 0xFF);
            }
          
            pushString("RIFF");
            pushUint32LE(fileSize);
            pushString("WAVE");
          
            pushString("fmt ");
            pushUint32LE(16);
            pushUint16LE(1);
            pushUint16LE(numChannels);
            pushUint32LE(sampleRate);
            pushUint32LE(byteRate);
            pushUint16LE(blockAlign);
            pushUint16LE(bitsPerSample);
          
            pushString("data");
            pushUint32LE(dataSize);
            const headerBytes = new Uint8Array(header);
            const out = new Uint8Array(headerBytes.length + pcmBytes.length);
            out.set(headerBytes, 0);
            out.set(pcmBytes, headerBytes.length);
          
            return out;
          }
          
          
          function test(){
            const text = "נשלחה אליך הודעת מייל חדשה בתאריך א כסליו תשפו";
            const pcmBase64 = tts(text);
            const pcmBytes = Utilities.base64Decode(pcmBase64);
            const pcmBlob = Utilities.newBlob(pcmBytes, 'application/octet-stream', 'test.pcm');
            DriveApp.createFile(pcmBlob);
          
            const sampleRate = 24000;
            const channels = 1;
            const bits = 16;
          
            const wavBytes = createWavFromPcm(pcmBytes, sampleRate, channels, bits);
            const wavBlob = Utilities.newBlob(wavBytes, 'audio/wav', 'test.wav');
            DriveApp.createFile(wavBlob);
          }
          
          

          אגב, לגבי שליחת מיילים אפשר לשלוח על ידי שלוחת api במקום לקרוא את הymgr בשלוחת קבלת נתונים (יצטרכו לעשות פריסה של הסקריפט ולהוסיף פונקציית doGet ולהשתיק את הודעת אין מענה משרת api.) כך הוא לא יצטרך בכל ריצה לבדוק את הymgr וכך הסקריפט יהיה מהיר יותר.

          ש מנותק
          ש מנותק
          שקיעות בלימוד
          כתב נערך לאחרונה על ידי
          #40

          משהוא יודע למה זה קורה ?
          אולי בגלל הסינון שלי ?

          675ed095-0810-43fe-80b7-4f67385e86fa-image.png

          ח תגובה 1 תגובה אחרונה
          0
          • ש שקיעות בלימוד

            משהוא יודע למה זה קורה ?
            אולי בגלל הסינון שלי ?

            675ed095-0810-43fe-80b7-4f67385e86fa-image.png

            ח מנותק
            ח מנותק
            חסיד פשוט
            כתב נערך לאחרונה על ידי
            #41

            @שקיעות-בלימוד אכן זה בגלל נטפרי שצריך לשלוח פניה

            ש תגובה 1 תגובה אחרונה
            0
            • ח חסיד פשוט

              @שקיעות-בלימוד אכן זה בגלל נטפרי שצריך לשלוח פניה

              ש מנותק
              ש מנותק
              שקיעות בלימוד
              כתב נערך לאחרונה על ידי
              #42

              @חסיד-פשוט
              אין לי בעיה לשלוח רק מה אני צריך לבקש מהם לפתוח ?

              ח תגובה 1 תגובה אחרונה
              0
              • ש שקיעות בלימוד

                @חסיד-פשוט
                אין לי בעיה לשלוח רק מה אני צריך לבקש מהם לפתוח ?

                ח מנותק
                ח מנותק
                חסיד פשוט
                כתב נערך לאחרונה על ידי
                #43

                @שקיעות-בלימוד שלח להם הסרטות מסך מהקובץ הגדרות

                ש תגובה 1 תגובה אחרונה
                1
                • ח חסיד פשוט

                  @שקיעות-בלימוד שלח להם הסרטות מסך מהקובץ הגדרות

                  ש מנותק
                  ש מנותק
                  שקיעות בלימוד
                  כתב נערך לאחרונה על ידי
                  #44

                  @חסיד-פשוט
                  וזה ישחרר לכולם או רק לי ?

                  האדם החושבה תגובה 1 תגובה אחרונה
                  0
                  • ש שקיעות בלימוד

                    @חסיד-פשוט
                    וזה ישחרר לכולם או רק לי ?

                    האדם החושבה מנותק
                    האדם החושבה מנותק
                    האדם החושב
                    מדריכים
                    כתב נערך לאחרונה על ידי
                    #45

                    @שקיעות-בלימוד רק לך.

                    תגובה 1 תגובה אחרונה
                    1
                    • האדם החושבה האדם החושב

                      @פלמנמוני

                      function tts(text){
                        const model = "gemini-2.5-flash-preview-tts"
                        const token = "gemini token"
                        const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${token}`
                        const payload = {
                          contents: [{
                            parts:[{
                              text: text
                            }]
                          }],
                          generationConfig: {
                            responseModalities: ["AUDIO"],
                            speechConfig: {
                              voiceConfig: {
                                prebuiltVoiceConfig: {
                                  voiceName: "Kore"
                                }
                              }
                            }
                          },
                          model: "gemini-2.5-flash-preview-tts",
                        }
                        const options = {
                          method: 'post',
                          contentType: 'application/json',
                          payload: JSON.stringify(payload)
                        }
                        const response = JSON.parse(UrlFetchApp.fetch(url, options))
                        console.log(response)
                        return response.candidates[0].content.parts[0].inlineData.data
                      }
                      
                      function test(){
                        const text = "בדיקת tts gemini";
                        const pcmBase64 = tts(text);
                        const pcmBytes = Utilities.base64Decode(pcmBase64);
                        const blob = Utilities.newBlob(pcmBytes, 'application/octet-stream', 'test.pcm');
                        DriveApp.createFile(blob);
                      }
                      
                      

                      ואז הורדת הקובץ מהדרייב והמרה בעזרת ffmpeg

                      ffmpeg -f s16le -ar 24000 -ac 1 -i test.pcm test.wav
                      

                      test.wav
                      test.pcm

                      צריך למצוא דרך להמיר את זה בגוגל סקריפט.

                      עריכה:
                      הצלחתי

                      function tts(text){
                        const model = "gemini-2.5-flash-preview-tts"
                        const token = "gemini token"
                        const url = `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${token}`
                        const payload = {
                          contents: [{
                            parts:[{
                              text: text
                            }]
                          }],
                          generationConfig: {
                            responseModalities: ["AUDIO"],
                            speechConfig: {
                              voiceConfig: {
                                prebuiltVoiceConfig: {
                                  voiceName: "Kore"
                                }
                              }
                            }
                          },
                          model: "gemini-2.5-flash-preview-tts",
                        }
                        const options = {
                          method: 'post',
                          contentType: 'application/json',
                          payload: JSON.stringify(payload)
                        }
                        const response = JSON.parse(UrlFetchApp.fetch(url, options))
                        return response.candidates[0].content.parts[0].inlineData.data
                      }
                      
                      function createWavFromPcm(pcmBytes, sampleRate, numChannels, bitsPerSample) {
                        const byteRate = sampleRate * numChannels * (bitsPerSample / 8);
                        const blockAlign = numChannels * (bitsPerSample / 8);
                        const dataSize = pcmBytes.length;
                        const fileSize = 44 - 8 + dataSize;
                      
                        const header = [];
                      
                        function pushString(s) {
                          for (let i = 0; i < s.length; i++) header.push(s.charCodeAt(i));
                        }
                      
                        function pushUint32LE(val) {
                          header.push(val & 0xFF,
                            (val >> 8) & 0xFF,
                            (val >> 16) & 0xFF,
                            (val >> 24) & 0xFF);
                        }
                      
                        function pushUint16LE(val) {
                          header.push(val & 0xFF,
                            (val >> 8) & 0xFF);
                        }
                      
                        pushString("RIFF");
                        pushUint32LE(fileSize);
                        pushString("WAVE");
                      
                        pushString("fmt ");
                        pushUint32LE(16);
                        pushUint16LE(1);
                        pushUint16LE(numChannels);
                        pushUint32LE(sampleRate);
                        pushUint32LE(byteRate);
                        pushUint16LE(blockAlign);
                        pushUint16LE(bitsPerSample);
                      
                        pushString("data");
                        pushUint32LE(dataSize);
                        const headerBytes = new Uint8Array(header);
                        const out = new Uint8Array(headerBytes.length + pcmBytes.length);
                        out.set(headerBytes, 0);
                        out.set(pcmBytes, headerBytes.length);
                      
                        return out;
                      }
                      
                      
                      function test(){
                        const text = "נשלחה אליך הודעת מייל חדשה בתאריך א כסליו תשפו";
                        const pcmBase64 = tts(text);
                        const pcmBytes = Utilities.base64Decode(pcmBase64);
                        const pcmBlob = Utilities.newBlob(pcmBytes, 'application/octet-stream', 'test.pcm');
                        DriveApp.createFile(pcmBlob);
                      
                        const sampleRate = 24000;
                        const channels = 1;
                        const bits = 16;
                      
                        const wavBytes = createWavFromPcm(pcmBytes, sampleRate, channels, bits);
                        const wavBlob = Utilities.newBlob(wavBytes, 'audio/wav', 'test.wav');
                        DriveApp.createFile(wavBlob);
                      }
                      
                      

                      אגב, לגבי שליחת מיילים אפשר לשלוח על ידי שלוחת api במקום לקרוא את הymgr בשלוחת קבלת נתונים (יצטרכו לעשות פריסה של הסקריפט ולהוסיף פונקציית doGet ולהשתיק את הודעת אין מענה משרת api.) כך הוא לא יצטרך בכל ריצה לבדוק את הymgr וכך הסקריפט יהיה מהיר יותר.

                      ת מנותק
                      ת מנותק
                      תלמידהון
                      כתב נערך לאחרונה על ידי
                      #46

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

                      אגב, לגבי שליחת מיילים אפשר לשלוח על ידי שלוחת api במקום לקרוא את הymgr בשלוחת קבלת נתונים (יצטרכו לעשות פריסה של הסקריפט ולהוסיף פונקציית doGet ולהשתיק את הודעת אין מענה משרת api.) כך הוא לא יצטרך בכל ריצה לבדוק את הymgr וכך הסקריפט יהיה מהיר יותר.

                      זה מה שעשיתי לפני מספר שנים
                      לא רציתי לפרסם את זה כי לא הייתי בטוח שזה יהיה פשוט לכולם

                      תגובה 1 תגובה אחרונה
                      0

                      • התחברות

                      • אין לך חשבון עדיין? הרשמה

                      • התחברו או הירשמו כדי לחפש.
                      • פוסט ראשון
                        פוסט אחרון
                      0
                      • חוקי הפורום
                      • פופולרי
                      • לא נפתר
                      • משתמשים
                      • חיפוש גוגל בפורום
                      • צור קשר