Productivity
Since 2023, many apps have come out and offer a better user experience than this project. I don't see the point in maintaining it anymore.
Talk is a single-page application crafted to converse with AI using voice, replicating the user experience akin to a native app.
Demo (No registration or login needed. Simply start conversing. For an optimal experience, open in Chrome)
talk.yaml
file.Here is a simple example utilising ChatGPT, Whisper and Elevenlabs:
speech-to-text:
whisper: open-ai-01
llm:
chat-gpt: open-ai-01
text-to-speech:
elevenlabs: elevenlabs-01
# provide your confidential information below.
creds:
open-ai-01: "sk-2dwY1IAeEysbnDNuAKJDXofX1IAeEysbnDNuAKJDXofXF5"
elevenlabs-01: "711sfpb9kk15sds8m4czuk5rozvp43a4"
llm:
chat-gpt: open-ai-01
creds:
open-ai-01: "sk-2dwY1IAeEysbnDNuAKJDXofX1IAeEysbnDNuAKJDXofXF5"
Looking to utilise Google Gemini, Google Text-to-Speech and Google Speech-to-Text? Not to worry, we have that covered. Please refer to talk.google.example.yaml for more information
The comprehensive example: talk.full.example.yaml
docker run -it -v ./talk.yaml:/etc/talk/talk.yaml -p 8000:8000 proxoar/talk
Refer to terraform. The same applies to Kubernetes.
# clone projects
git clone https://github.com/proxoar/talk.git proxoar/talk
git clone https://github.com/proxoar/talk-web.git proxoar/talk-web
# build web with yarn and copy; currently using node v20.3.0
cd proxoar/talk-web && make copy
# build backend
cd ../talk && make build
# run
./talk --config ./talk.yaml
# or simply `./talk` as it automatically lookup talk.yaml in `/etc/talk/talk.yaml` and `./talk.yaml`
./talk
We honour HTTP_PROXY
and HTTPS_PROXY
env variables. Given that all communication between the Talk server and
service providers occurs via HTTPS, simply employ HTTPS_PROXY
.
docker run -it -v ./talk.yaml:/etc/talk/talk.yaml \
-e HTTPS_PROXY=http://192.168.1.105:7890 \
-p 8000:8000 \
proxoar/talk
Default log level is info
, Use env LOG_LEVEL
to change log level: "debug", "info", "warn", "error", "dpanic", "
panic", and "fatal". e.g.,
LOG_LEVEL=debug ./talk
proxoar/talk
offers three methods for enabling HTTPS.
Example: talk.tls.self.signed.example.yaml
server:
tls:
self-signed: true
This is handy if you're indifferent to a domain and unconcerned about security, simply desiring to enable microphone access on browsers.
Example: talk.tls.provided.example.yaml
This configuration example facilitates automatic certificate acquisition from LetsEncrypt: talk.tls.auto.example.yaml
Requirements: You should have your personal VPS and domain.
Web browsers safeguard your microphone from being accessed by non-HTTPS websites for security reasons, with the
exceptions being localhost
and 127.0.0.1
.
Here are some possible solutions:
chrome://flags/
, find Insecure origins treated as secure
, and enable it:
Arc | Chrome | FireFox | Edge | Safari | |
---|---|---|---|---|---|
Microphone | ✅ | ✅ | ✅ | ❌ | ❌ |
UI | ✅ | ✅ | ✅ | ✅ | ❌ |
Q: Why not use TypeScript for both the frontend and backend development?
A:
Q: Will a mobile browser-friendly version be made available?
A: Streamlining the website for mobile usage would be a time-intensive endeavour and, given my current time constraints, it isn't the primary concern. As it stands, the site performs optimally on desktop browsers based on the Chromium Engine, with certain limitations on browsers such as Safari.
We're in the midst of a dynamic development stage for this project and warmly invite new contributors.
We would also like to thank all other open-source projects and communities not listed here for their valuable contributions to our project.