דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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. שיתוף | 'פלאפון מייל' - כולל קבלת ושליחת מיילים דרך הפלאפון, קריינות מקצועית, ועוד...

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

מתוזמן נעוץ נעול הועבר רשתות
110 פוסטים 21 כותבים 2.1k צפיות 27 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ח מנותק
    ח מנותק
    חסיד פשוט
    כתב נערך לאחרונה על ידי חסיד פשוט
    #21

    נתקבל בשגיאה למה ?
    (אולי בגלל נטפרי ) אם אין לי נקודות אין מה לעשות?

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

      @פלמנמוני למה שלא תעשה tts דרך gemini?
      (מודל gemini-2.5-flash-preview-tts gemini-2.5-pro-preview-tts הוא חינמי עד 15 בקשות ביום).
      דרך גוגל קלאוד זה חינמי רק עד 3 חודשים ולדעתי הוא מביא תוצאות פחות טובות.

      C מנותק
      C מנותק
      CUBASE
      כתב נערך לאחרונה על ידי CUBASE
      #22

      @האדם-החושב *מודל gemini-2.5-flash-preview-tts

      תגובה 1 תגובה אחרונה
      1
      • פלמנמוניפ פלמנמוני

        הבשורה שכולם חיכו לה - 'פלאפון מייל'! גירסא 1.2.3

        הגירסא המשופרת של 'מייל לפלאפון' הוותיק.

        קישור לסקריפט

        שיפורים והוספות:

        • שליחת מיילים טלפונית
        • קריינות מקצועית למיילים המתקבלים
        • כולל אימות דו"ש של ימות המשיח, שבקרוב ממש יתחיל להיות אכיפה ע"ז

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

        כפי איך שהבנתי הנ"ל כבר עובד ג"כ על גירסא חדשה אך לא מנעתי עצמי להביא כאן את גירסתי לתועלת הרבים לזמן שבנתיים.

        הוראות הפעלת הסקריפט

        שימו לב שלפני הגדרת המערכת צריך להיות ברשותכם מערכת תוכן של חברת ימות המשיח אם אין לכם כנסו לכאן ופתחו מערכת חדשה

        נכנסים לכאן ייפתח חלון שיישאל אתכם אם ליצור עותק, יש ללחוץ על יצירת עותק

        לאחר יצירת העותק ייפתח חלון של Google Sheets (אקסל של גוגל), יש ללחוץ בסרגל הכלים פלאפון-מייל > הפעלה ראשונית (או על כפתור טיפול בהכל)

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

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

        אם הסקריפט עדיין לא הופעל יש להפעיל אותו שוב

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

        תצטרכו לבחור אם יהיה סיסמא לשלוחת השמעת המיילים ולשלוחת שליחת המיילים, כמו כן תצטרכו לבחור איך אתם רוצים את שלוחת שליחת המיילים:

        • הקלדה רגילה בטלפון (מקלדת עברית).
        • הקלטה עם תמלול של ימות המשיח (בעלות יחידות, את המייל עדיין תצטרכו להקליד).
        • הקלטה עם תמלול של ג'מיני (דורש מפתח API שיש להגדיר בהמשך, את המייל והנושא עדיין תצטרכו להקליד).
        • הקלטה ושליחת ההקלטה עצמה.

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

        אחרי ההפעלה מתקשרים למערכת מקישים 9 להרשמה לקבלת צינתוקים.

        כעת יש לנו מערכת מוכנה שתצנתק לנו כשיש מייל חדש ותקריא לנו את המיילים שקבלנו, וכמו כן נוכל לשלוח דרכה מיילים לנמענים אחרים.

        בגליון 'אנשי קשר' תוכלו להוסיף נמענים לשליחה מהירה בטלפון.

        הדרכות והסברים נוספים כולל תמונות ניתו למצוא בשרשור של הסקריפט המקורי

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

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

        תגובה 1 תגובה אחרונה
        0
        • ח חכמון התייחס לנושא זה
        • מ מייבין במקצת

          @פלמנמוני נתת לי הרשאת גישה ואני לא מצליח לכתוב את הפרטים בקובץ
          אולי זה בגלל שההרשאה היא רק לצפייה?

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

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

          @פלמנמוני נתת לי הרשאת גישה ואני לא מצליח לכתוב את הפרטים בקובץ
          אולי זה בגלל שההרשאה היא רק לצפייה?

          צריך ליצור עותק

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

          למה שלא תעשה tts דרך gemini?
          (מודל gemini-2.5-flash-preview-tts gemini-2.5-pro-preview-tts הוא חינמי עד 15 בקשות ביום).

          לפעמים צריך יותר, ובכל מקרה אולי אנסה בהמשך

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

          דרך גוגל קלאוד זה חינמי רק עד 3 חודשים

          יש דברים שעולים כסף אח"כ, זה לא

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

          לדעתי הוא מביא תוצאות פחות טובות.

          אני מרוצה ממנו לגמרי

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

          מה עם stt? לא נצרך?
          וזה גם דורש חיוב.

          זה דרך ג'מיני רגיל

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

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

          את המייל והנושא עדיין צריך להקליד ידנית, אחרת הקו יוצר הקלטה אחת ארוכה

          פלאפון מייל

          תגובה 1 תגובה אחרונה
          0
          • ד מנותק
            ד מנותק
            דוד טרייטל
            כתב נערך לאחרונה על ידי
            #25

            יש דרך להשבית את הסקריפט בלי למחוק? כנראה בגלל הקריסה הארוכה של ימות המשיח כבר מהבוקר, העסק חורק, ומשבש לי את המייל...
            יש פתרון זמני? וסתם לדעת איך משהים את השירות
            אפשר להעביר לאשפה, אני יודע, אבל אני חושש שאשכח לשחזר תוך חודש או שאצטרך שוב בדיקה מנטפרי
            1f6309a6-6f4e-4114-b001-48f704e93701-image.png

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

              יש דרך להשבית את הסקריפט בלי למחוק? כנראה בגלל הקריסה הארוכה של ימות המשיח כבר מהבוקר, העסק חורק, ומשבש לי את המייל...
              יש פתרון זמני? וסתם לדעת איך משהים את השירות
              אפשר להעביר לאשפה, אני יודע, אבל אני חושש שאשכח לשחזר תוך חודש או שאצטרך שוב בדיקה מנטפרי
              1f6309a6-6f4e-4114-b001-48f704e93701-image.png

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

              @דוד-טרייטל כנס לתפריט זה
              4755b186-2d4a-4b3d-acb9-09ee8d1c0237-image.png
              ואז מחיקת טריגרים

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

              פלאפון מייל

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

                @פלמנמוני למה שלא תעשה tts דרך gemini?
                (מודל gemini-2.5-flash-preview-tts gemini-2.5-pro-preview-tts הוא חינמי עד 15 בקשות ביום).
                דרך גוגל קלאוד זה חינמי רק עד 3 חודשים ולדעתי הוא מביא תוצאות פחות טובות.

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

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

                @פלמנמוני למה שלא תעשה tts דרך gemini?

                אפשר הדרכה? אני לא מצליח

                פלאפון מייל

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

                  עבודה נפלאה, אתה לא יודע (או שאתה כן יודע ולפחות אני יודע) כמה אנשים חיכו לשליחת מיילים עם זיהוי דיבור בחינם.

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

                    נתקבל בשגיאה למה ?
                    (אולי בגלל נטפרי ) אם אין לי נקודות אין מה לעשות?

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

                    @חסיד-פשוט מה עושים

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

                    נתקבל בשגיאה למה ?
                    (אולי בגלל נטפרי ) אם אין לי נקודות אין מה לעשות?

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

                      @חסיד-פשוט מה עושים

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

                      נתקבל בשגיאה למה ?
                      (אולי בגלל נטפרי ) אם אין לי נקודות אין מה לעשות?

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

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

                      פלאפון מייל

                      מ תגובה 1 תגובה אחרונה
                      0
                      • פלמנמוניפ פלמנמוני

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

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

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

                        פלמנמוניפ תגובה 1 תגובה אחרונה
                        0
                        • מ מוגן

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

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

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

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

                          אני...
                          עריכה: וכעת גם אתה...

                          פלאפון מייל

                          מ תגובה 1 תגובה אחרונה
                          0
                          • פלמנמוניפ פלמנמוני

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

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

                            אני...
                            עריכה: וכעת גם אתה...

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

                            @פלמנמוני שלחתי לך צ'אט
                            אשמח אם תוכל שהמפתח תקיו
                            כי אחרת אין לי הסבר למה זה לא עובד!

                            תגובה 1 תגובה אחרונה
                            0
                            • פלמנמוניפ פלמנמוני

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

                              @פלמנמוני למה שלא תעשה tts דרך gemini?

                              אפשר הדרכה? אני לא מצליח

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

                              @פלמנמוני בpython זה נראה כך:

                              import io
                              import wave
                              
                              from google import genai
                              from google.genai import types
                              
                              
                              def tts_single_speaker(token: str, text: str, model: str = "gemini-2.5-flash-preview-tts", voice: str = "Zephyr") -> bytes | None:
                                  client = genai.Client(api_key=token)
                                  response = client.models.generate_content(
                                      model=model,
                                      contents=[types.Part.from_text(text=text)],
                                      config=types.GenerateContentConfig(
                                          response_modalities=["AUDIO"],
                                          speech_config=types.SpeechConfig(
                                              voice_config=types.VoiceConfig(
                                                  prebuilt_voice_config=types.PrebuiltVoiceConfig(
                                                      voice_name=voice
                                                  )
                                              )
                                          ),
                                      )
                                  )
                                  if response and response.candidates and response.candidates[0] and response.candidates[0].content and response.candidates[0].content.parts and response.candidates[0].content.parts[0].inline_data:
                                      return response.candidates[0].content.parts[0].inline_data.data
                                  return None
                              
                              
                              def wave_file(pcm, channels=1, rate=24000, sample_width=2) -> bytes:
                                  buf = io.BytesIO()
                                  with wave.open(buf, "wb") as wf:
                                      wf.setnchannels(channels)
                                      wf.setsampwidth(sample_width)
                                      wf.setframerate(rate)
                                      wf.writeframes(pcm)
                                  return buf.getvalue()
                              
                              def main():
                                  text = "שלום, זהו מבחן של המערכת להמרת טקסט לדיבור."
                                  token = "YOUR_API_KEY_HERE"
                                  audio_pcm = tts_single_speaker(token, text)
                                  if audio_pcm:
                                      audio_bytes = wave_file(audio_pcm)
                                      with open("output.wav", "wb") as f:
                                          f.write(audio_bytes)
                                      print("Audio content written to output.wav")
                                  else:
                                      print("Failed to generate audio.")
                              

                              פעם ניסיתי לעשות את זה בgoogle script אבל לא הצלחתי לתרגם את החלק של המרת הpcm לwav.

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

                                @פלמנמוני בpython זה נראה כך:

                                import io
                                import wave
                                
                                from google import genai
                                from google.genai import types
                                
                                
                                def tts_single_speaker(token: str, text: str, model: str = "gemini-2.5-flash-preview-tts", voice: str = "Zephyr") -> bytes | None:
                                    client = genai.Client(api_key=token)
                                    response = client.models.generate_content(
                                        model=model,
                                        contents=[types.Part.from_text(text=text)],
                                        config=types.GenerateContentConfig(
                                            response_modalities=["AUDIO"],
                                            speech_config=types.SpeechConfig(
                                                voice_config=types.VoiceConfig(
                                                    prebuilt_voice_config=types.PrebuiltVoiceConfig(
                                                        voice_name=voice
                                                    )
                                                )
                                            ),
                                        )
                                    )
                                    if response and response.candidates and response.candidates[0] and response.candidates[0].content and response.candidates[0].content.parts and response.candidates[0].content.parts[0].inline_data:
                                        return response.candidates[0].content.parts[0].inline_data.data
                                    return None
                                
                                
                                def wave_file(pcm, channels=1, rate=24000, sample_width=2) -> bytes:
                                    buf = io.BytesIO()
                                    with wave.open(buf, "wb") as wf:
                                        wf.setnchannels(channels)
                                        wf.setsampwidth(sample_width)
                                        wf.setframerate(rate)
                                        wf.writeframes(pcm)
                                    return buf.getvalue()
                                
                                def main():
                                    text = "שלום, זהו מבחן של המערכת להמרת טקסט לדיבור."
                                    token = "YOUR_API_KEY_HERE"
                                    audio_pcm = tts_single_speaker(token, text)
                                    if audio_pcm:
                                        audio_bytes = wave_file(audio_pcm)
                                        with open("output.wav", "wb") as f:
                                            f.write(audio_bytes)
                                        print("Audio content written to output.wav")
                                    else:
                                        print("Failed to generate audio.")
                                

                                פעם ניסיתי לעשות את זה בgoogle script אבל לא הצלחתי לתרגם את החלק של המרת הpcm לwav.

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

                                @האדם-החושב מהו הקישור דרכו מתבצע התקשורת?

                                פלאפון מייל

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

                                  @האדם-החושב מהו הקישור דרכו מתבצע התקשורת?

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

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

                                  https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-tts:generateContent?key=
                                  
                                  פלמנמוניפ תגובה 1 תגובה אחרונה
                                  0
                                  • האדם החושבה האדם החושב

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

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

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

                                    פלאפון מייל

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

                                      גירסא 1.1

                                      מה נוסף?

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

                                      פלאפון מייל

                                      תגובה 1 תגובה אחרונה
                                      3
                                      • פלמנמוניפ פלמנמוני

                                        @האדם-החושב זהו, שקישור זה לא עבד לי.
                                        חוששני שצריך דרך גוגל קלאוד, ולכן לא נראה לי שזה כדאי את ההשקעה.
                                        איזה מפתח 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 וכך הסקריפט יהיה מהיר יותר.

                                        ש ת פלמנמוניפ 3 תגובות תגובה אחרונה
                                        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 וכך הסקריפט יהיה מהיר יותר.

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

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

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

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

                                          • התחברות

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

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