En Esperanto telefoni kun ChatGPT

Westphoenizier
Westphoenizier
Published in
4 min readMar 30

--

Por tion simple nur fari, oni telefonu al la Usona numero menciita en tiu Github-gisto.

Aktualigo:

Por efektivigi la aferon por telefonnumero, kiun oni mem estas luinta de Twilio, oni procedu jene:

Bezonataj estas:

En la Twilio-konzolo oni devas asigni al la koncerna telefonnumero — por
A CALL COMES IN (voko eniras) — tiel nomatan Webhook (rethokon; ekzempla URL: http://andreo7.bplaced.net/abcd1) kun jena enhavo:

<?php
echo '<?xml version="1.0" encoding="UTF-8"?><Response><Say voice="Polly.Ewa">Post la sijgnalsono bonwole parolu malrapijde kay komencu per: Saluton!</Say><Record action="http://andreo7.bplaced.net/abcd2.php" maxLength="60"/></Response>';
?>

Tamen http://andreo7.bplaced.net/abcd2 devas esti anstatauigita per tiu URL, kie oni estas deponinta sian duan php-retpaghon (ekzempla URL chi tie: http://andreo7.bplaced.net/abcd2) kun jena enhavo:

<?php
sleep(4);
mail("retposhto1@hook.eu1.make.com", "Startigu", "Startigu agon, "From: Nomo <retp@esperantujo.eo>");
sleep(4);
echo '<?xml version="1.0" encoding="UTF-8"?><Response><Say voice="Polly.Ewa">Momenton, mij petas.</Say><Pause length="8"/><Say voice="Polly.Ewa">Momenton, mij petas.</Say><Pause length="8"/><Say voice="Polly.Ewa">Momenton, mij petas.</Say><Pause length="8"/><Say voice="Polly.Ewa">Momenton, mij petas.</Say><Pause length="8"/><Play>https://docs.google.com/uc?export=play&amp;id=1-Am-Ly46CXWviK-K1szBjf5ZRFSIsGFk</Play><Redirect>http://andreo7.bplaced.net/abcd1.php</Redirect></Response>';
?>

Chi-supre oni devas anstatauigi a) 1-Am-Ly46CXWviK-K1szBjf5ZRFSIsGFk per la ID se sia kopio de tiu sondosiero kaj b) retposhto1@hook.eu1.make.com per difinita retposht-adreso. Ghi estas tiu, kie eniranta retmesagho kauzas — per Make-modulo Webhook -> Custom mailhook — http-peton per Make-modulo http -> Make a request al difinita ret-apo, por ke tiu chi startu. La aplikenda retposht-adreso estighas dum la kreado de la Make-scenaro. Kaj la ret-apo-adreson oni ricevas per procedado lau jenaj pashoj, kaj tiun ret-apo-adreson oni devas enigi en la diritan Make-modulon http -> Make a request:

  • Pasho 1: Malfermu tiun Guglo-Tabelon.
  • Pasho 2: Ensalutu en vian Guglo-konton per butono Anmelden (Ensaluti).
  • Pasho 3: En la tabelo iru al Datei (Dosiero) > Kopie erstellen (Krei kopion).
  • Pasho 4: En via kopio de la tabelo alklaku Erweiterungen (Pliaj aferoj) > Apps Script (Apoj-Skripto).
  • Pasho 5: Faru la necesajn shanghojn en la Apoj-Skripto.
  • Pasho 6: Startigu function doGet(e) kaj donu chiujn petatajn permesojn.
  • Pasho 7: Alklaku Bereitstellen (Disponigi) > Neue Bereitstellung (Nova disponigo) > Web App (Ret-apo). Certigu, ke la Zugriffsberechtigte (Rajtigito por aliro) estas Jeder (Chiu).
  • Pasho 8: Kopiu la ret-adreson de la ret-apo disponigita de vi.
  • Pasho 9: En la Make-modulon http -> Make a request enigu la ret-adreson de la ret-apo.

Krome oni devas krei duan Make-scenaron — ankau per kombino de la Make-moduloj Webhook -> Custom mailhook kaj http -> Make a request. Per la retposht-adreso ricevita dum la kreado de tiu dua Make-scenaro oni devas anstatauigi la retposht-adreson en la Apoj-Skripto de sia kopio de tiu Guglo-Tabelo. Kaj la ret-apo-adreson enigendan en la Make-modulon http -> Make a request de tiu dua Make-scenaro oni ricevas per procedado lau la supraj pashoj 1 ghis 8, tamen rilate al sia kopio de tiu dua Guglo-Tabelo.

Por ke oni povu utiligi eSpeak, oni devas krei ankau ret-apon de PythonAnywhere. Ensalutinte tie, tiucele oni enigu en
https://www.pythonanywhere.com/user/uzantonomo/files/var/www/uzantomo_pythonanywhere_com_wsgi.py jenan kodon (oni anstatauigu uzantonomo per sia uzantonomo kaj chi-supre kaj en la sekvaj aferoj):

import sys
path = '/home/uzantonomo/'
if path not in sys.path:
sys.path.append(path)
from wsgi import application # noqa

Kaj en sia hejma dosierujo https://www.pythonanywhere.com/user/uzantonomo/files/home/uzantonomo oni kreu dosieron wsgi.py kun jena kodo:

import subprocess
import requests
import re
import base64
import os
import time

def application(environ, start_response):

if os.path.exists("sono.wav"):
os.remove("sono.wav")
parametro = environ.get('PATH_INFO')
parametro1 = "komenco" + parametro + "fino"
parametro2 = re.search(r"komenco\/(.+?)fino", parametro1)
parametro3 = parametro2.group(1)
teksto03 = base64.b64decode(parametro3).decode('utf-8')
teksto02 = teksto03
lingvo01 = re.search(r"(.+?) .", teksto02)
lingvo02 = lingvo01.group(1)
lingvo = "-" + "v" + lingvo02 + "+f3"
longo = len(teksto02)
longolgv = len(lingvo02)
teksto1 = teksto02[longolgv+1:longo]
# subprocess.Popen(["espeak", lingvo, "-s", "125", "-g", "12", "-w", "sono.wav", teksto1])
subprocess.Popen(["espeak", lingvo, "-s", "125", "-g", "12", "-p", "40", "-w", "sono.wav", teksto1])
time.sleep(1)
# out = subprocess.getoutput("curl https://bashupload.com/{} --data-binary @{}".format("sono.wav","sono.wav"))
# out = subprocess.getoutput("curl --upload-file sono.wav https://transfer.sh/sono.wav")
out = subprocess.getoutput("curl https://oshi.at -F f=@sono.wav")
time.sleep(1)
# url1 = re.search(r"https\:\/\/bashupload\.com\/(.+?)\/", out)
# url1 = re.search(r"https\:\/\/transfer\.sh\/(.+?)\/", out)
url1 = re.search(r"https\:\/\/oshi\.at\/(.+?)\/sono.wav", out)
url2 = url1.group(1)
# url = "https://bashupload.com/" + url2 + "/sono.wav"
# url = "https://transfer.sh/" + url2 + "/sono.wav"
url = "https://oshi.at/" + url2 + "/sono.wav"
pload = {'url':url}
requests.post("https://script.google.com/macros/s/{ret-apo-ID-rilate-al-evi}/exec", pload)
enhavo = parametro
status = '200 OK'
response_headers = [('Content-Type', 'text/html'), ('Content-Length', str(len(url)))]
start_response(status, response_headers)
yield enhavo.encode('utf8')

La {ret-apo-ID-rilate-al-evi} oni ricevas per procedado lau la supraj pashoj 1 ghis 8, tamen rilate al sia kopio de tiu tria Guglo-Tabelo.

Informcele jen atentigo pri artikolo “Vocho-al-teksto-transformo kaj inverse: rimedoj uzeblaj por Esperanto”.

Se tio chi ne montrighas bone, klaku chi tie.

--

--

Westphoenizier
Westphoenizier

Stell dir vor,es gibt Sprachbarrieren und jeder lernt Esperanto.Lingvo internacia Radio-auskultado:analoga&DAB+ Haiku.Hajko Sciencfikci- & fantaziajhoj.Indirok'