noise VS piper

Compare noise vs piper and see what are their differences.

noise

Go implementation of the Noise Protocol Framework (by flynn)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
noise piper
7 39
502 4,075
0.4% 14.0%
3.9 8.6
3 months ago 5 days ago
Go C++
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

noise

Posts with mentions or reviews of noise. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-15.
  • A simple, (as-of-yet unidentified) asymmetric Authenticated Key Exchange
    1 project | news.ycombinator.com | 26 Mar 2024
    This is Noise IK (possibly with minor differences in the hashing):

    https://noiseprotocol.org/

    Wireguard uses NoiseIK, plus a static public key for the initiator which is encrypted to the agreed-upon-session-key without adding additional round trips. Your protocol simply omits the parts related to the initiator's static public key, because it has none.

  • Show HN: Willow – Open-Source Privacy-Focused Voice Assistant Hardware
    13 projects | news.ycombinator.com | 15 May 2023
    With regard to this:

    > - On the wire/protocol stuff. We're doing pretty rudimentary "open new connection, stream voice, POST somewhere". This adds extra latency and CPU usage because of repeated TLS handshakes, etc. We have plans to use Websockets and what-not to cut down on this.

    I've recently used the Noise protocol[1] to do some encrypted communication between two services I control but separated by the internet.

    It was surprisingly easy!

    [1]: https://noiseprotocol.org/

  • How much secure is my UDP based network protocol?
    3 projects | /r/crypto | 5 May 2023
    Rolling your own initial handshake is hard. Right now I strongly encourage you take a look at the Noise protocol framework. Specifically the XK and IK patterns for identified clients, and the NK pattern for anonymous clients. The best security will be achieved by the XK pattern, but if you need to reduce the number of messages to a minimum IK might be a bit more attractive. (Also, if I recall correctly IK is used by Wireguard, so there's an example to follow).
  • Noise Protocol Framework
    1 project | news.ycombinator.com | 19 Apr 2023
  • Rosenpass – formally verified post-quantum WireGuard
    9 projects | news.ycombinator.com | 28 Feb 2023
    Rosenpass author here;

    There is a confusion about terminology here I think. Mathematical proofs including cryptography proofs use models simplifying reality; i.e. the real practical system might still be susceptible to attacks despite a proof of security.

    For crypto primitives (classic mc eliece, curve25519, ed25519, RSA, etc etc) the standard for proofs is currently showing that they are as hard as some well studied mathematical problem. This is done by showing that an attack on the primitive leads to an attack on the underlying mathematical primitive. The proof for Diffie-Hellman shows that attacking DH leads to an efficient solution for the discrete log problem. I.e. the proof is a reduction to the underlying primitive.

    No primitive is perfectly secure (at least a brute force – i.e. guessing each possibility is possible); there is some probability that the adversary can guess the right key. We call this probability the adversary's advantage. One task in cryptoanalysis is to find better attacks against primitives with a higher advantage; if an attack with a polynomial time average runtime is found, the primitive is broken. Finding a higher non-polynomial attack is still an interesting result.

    The standard for protocols is proving that the protocol is secure assuming the primitives are secure; since multiple primitives are used you basically get a formula deriving an advantage for breaking the entire protocol. The proof is a reduction to a set of primitives.

    We did not build a proof in that gold standard, although we are working on it. We built a proof in the symbolic model – known as a symbolic analysis. This uses the perfect cryptography assumption; i.e. we assumed that the advantages for each primitive are zero. Google "Dolev-Yao-Model".

    This makes the proof much easier; a proof assistant such as ProVerif can basically find a proof automatically using logic programming methods (horn clauses).

    The definitions of security are fairly well understood; unfortunately there is a lot to go into so I can't expand on that here. Looking up "IND-CPA" and "IND-CCA" might be a good start; these are the security games/models of security for asymmetric encryption; you could move on to the models for key exchange algorithms there. Reading the [noise protocol spec](https://noiseprotocol.org/) is also a good start.

  • Whisper: Wraps any Go io.ReadWriter in a secure tunnel using Ed25519/X25519
    5 projects | news.ycombinator.com | 19 Feb 2023
    There is no description of the protocol or of its security goals, so I am making some guesses based on a cursory look at the source and what I imagine this might be for.

    A single symmetric key is derived for both directions, and there is no checking of nonces, so as far as I can tell any message can be dropped, reordered, or replayed in both directions. (Including replaying message from A to B as if they were from B to A.)

    This is a bit like using ECB and likely to lead to fun application-specific attacks like [0].

    This is very much rolling your own crypto, in a dangerous way. I am on the record as being "against" the "don't roll your own crypto" refrain [1], but mostly because it doesn't work: it should discourage people from publishing hand-rolled protocols such as this, but instead people think it means "don't roll your own primitives" and accept the use of "Ed25519/X25519" as probably secure.

    Please read about the Noise framework [2] to get an idea of how much nuance there is to this, and consider using a Go implementation of it [3] instead.

    P.S. This kind of issue is also why I maintain that NaCl is not a high-level scheme [4]: this could have used NaCl and have the exact same issues. libsodium has a couple slightly higher-level APIs that could have helped, secretstream [5] and kx [6], but again please use Noise.

    [0] https://cryptopals.com/sets/2/challenges/13

    [1] https://securitycryptographywhatever.buzzsprout.com/1822302/...

    [2] https://noiseprotocol.org/noise.html

    [3] https://github.com/flynn/noise

    [4] https://words.filippo.io/dispatches/nacl-api/

    [5] https://libsodium.gitbook.io/doc/secret-key_cryptography/sec...

    [6] https://libsodium.gitbook.io/doc/key_exchange

piper

Posts with mentions or reviews of piper. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-01.
  • ESpeak-ng: speech synthesizer with more than one hundred languages and accents
    21 projects | news.ycombinator.com | 1 May 2024
    After some brief research it seems the issue you're seeing may be a known bug in at least some versions/release of espeak-ng.

    Here's some potentially related links if you'd like to dig deeper:

    * "questions about mandarin data packet #1044": https://github.com/espeak-ng/espeak-ng/issues/1044

    * "ESpeak NJ-1.51’s Mandarin pronunciation is corrupted #12952": https://github.com/nvaccess/nvda/issues/12952

    * "The pronunciation of Mandarin Chinese using ESpeak NJ in NVDA is not normal #1028": https://github.com/espeak-ng/espeak-ng/issues/1028

    * "When espeak-ng translates Chinese (cmn), IPA tone symbols are not output correctly #305": https://github.com/rhasspy/piper/issues/305

    * "Please default ESpeak NG's voice role to 'Chinese (Mandarin, latin as Pinyin)' for Chinese to fix #12952 #13572": https://github.com/nvaccess/nvda/issues/13572

    * "Cmn voice not correctly translated #1370": https://github.com/espeak-ng/espeak-ng/issues/1370

  • WhisperSpeech – An Open Source text-to-speech system built by inverting Whisper
    9 projects | news.ycombinator.com | 17 Jan 2024
    If you're not already aware, the primary developer of Mimic 3 (and its non-Mimic predecessor Larynx) continued TTS-related development with Larynx and the renamed project Piper: https://github.com/rhasspy/piper

    Last year Piper development was supported by Nabu Casa for their "Year of Voice" project for Home Assistant and it sounds like Mike Hansen is going to continue on it with their support this year.

  • Coqui.ai Is Shutting Down
    4 projects | news.ycombinator.com | 3 Jan 2024
    Coqui-ai was a commercial continuation of Mozilla TTS and STT (https://github.com/mozilla/TTS).

    At the time (2018-ish), it was really impressive for on-device voice synthesis (with a quality approaching the Google and Azure cloud-based voice synthesis options) and open source, so a lot of people in the FOSS community were hoping it could be used for a privacy-respecting home assistant, Linux speech synthesis that doesn't suck, etc.

    After Mozilla abandoned the project, Coqui continued development and had some really impressive one-shot voice cloning, but pivoted to marketing speech synthesis for game developers. They were probably having trouble monetizing it, and it doesn't surprise me that they shut down.

    An equivalent project that's still in active development and doing really well is Piper TTS (https://github.com/rhasspy/piper).

  • OpenVoice: Versatile Instant Voice Cloning
    10 projects | news.ycombinator.com | 1 Jan 2024
    There isn't an ElevenLabs app like that, but I think that's the most expedient method, by far.

    (details and warning: in-depth, opinionated take, written almost for my own benefit, I've done a lot of work near here recently but haven't had to organize my thoughts until now)

    Why? Local inference is hard. You need two things: the clips to voice model (which we have here, but bleeding edge), and text + voice -> speech model.

    Text to voice to speech, locally, has excellent prior art for me, in the form of a Raspberry Pi-based ONNX inference library called [Piper](https://github.com/rhasspy/piper). I should just be able to copy that, about an afternoon of work!

    Except...when these models are trained, they encode plaintext to model input using a library called eSpeak. eSpeak is basically f(plaintext) => ints representing phonemes. eSpeak is a C library and written in a style I haven't seen in a while and depends on other C libraries. So I end up needing to port like 20K lines of C to Dart...or I could use WASM, but over the last year, I lost the ability to be able to reason through how to get WASM running in Dart, both native and web.

    It's a really annoying technical problem: the speech models all use this eSpeak C library to turn plaintext => model input (tokenized phonemes).

    Re: ElevenLabs

    I had looked into the API months ago and vaguely remembered it was _very_ complete.

    I spent the last hour or two playing with it, and reconfirmed that. They have enough API surface that you could build an API that took voice recordings, created a voice, and then did POSTs / socket connection to get audio data from that voice at will.

    Only issue is pricing IMHO, $0.18 for 1000 characters. :/ But this is something I feel very comfortable saying wouldn't be _that_ much work to build and open source with a "bring your own API key" type thing. I had forgotten about Eleven Labs till your post, which made me realize there was an actually meaningful and quite moving use case for it.

  • Hello guys, any selfhosted alternative to eleven labs?
    3 projects | /r/selfhosted | 11 Dec 2023
    piper (https://github.com/rhasspy/piper)
  • [D] What offline TTS Model is good enough for a realistic real-time task?
    2 projects | /r/MachineLearning | 10 Dec 2023
    I have been using piper-tts and it is GREAT and super lightweight / easy to use. On a 2080 I'm sure you can use the HQ models no worries!
  • Easy implement TTS libary for cpp
    1 project | /r/cpp_questions | 7 Dec 2023
    So i found some library and one which is from github and have read.me or good documentation called piper (https://github.com/rhasspy/piper) so apparently this library is for rasbery pi and yes there is TXT function and i need to modify again to make it more simple but my simple project don't need this kind of big complex libary and all i need is what i said before just a function that can output sound from computer using c++ libary.
  • Piper-whistle – Tool for piper TTS voice model management
    4 projects | news.ycombinator.com | 5 Dec 2023
    piper-whistle is a tool to manage voices used with the piper (https://github.com/rhasspy/piper) speech synthesizer. Main motivation was to download and reference models in a structured way. You may browse the docs online at https://think-biq.gitlab.io/piper-whistle/
  • StyleTTS2 – open-source Eleven Labs quality Text To Speech
    10 projects | news.ycombinator.com | 19 Nov 2023
    You may want to try Piper for this case (RPi 4): https://github.com/rhasspy/piper
  • Piper: A fast, local neural text to speech system
    1 project | news.ycombinator.com | 4 Nov 2023

What are some alternatives?

When comparing noise and piper you can also consider the following projects:

willow - Open source, local, and self-hosted Amazon Echo/Google Home competitive Voice Assistant alternative

tortoise-tts - A multi-voice TTS system trained with an emphasis on quality

rosenpass - Rosenpass is a post-quantum-secure VPN that uses WireGuard to transport the actual data.

TTS - 🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production

FastNoise - Fast Portable Noise Library - C# C++ C Java HLSL GLSL JavaScript Rust Go

espeak-ng - eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents.

imagemagick - haskell imagemagick bindings

silero-models - Silero Models: pre-trained speech-to-text, text-to-speech and text-enhancement models made embarrassingly simple

whisper - Wraps an io.ReadWriter in a secure tunnel using modern elliptic-curve cryptography.

mimic3 - A fast local neural text to speech engine for Mycroft

matplotlib - Haskell bindings for Python's Matplotlib