From Insomnia to Innovation: Building SleepScape

This might happen with a lot of people – feeling insomniac at night, taking almost an hour to simply fall asleep. To ensure that I do sleep – I use apps like Calm, Headspace, and often YouTube to listen to something which might simply get my mind to calm down and not think about anything else. I know it’s hard but then again, the goal is to Sleep!

While the Apps do work, often, they don’t fall into the exact requirement that I have. Thus, the developer in me started brainstorming. I started thinking of building a mobile app using React Native for Android and iOS. It took me around a weekend to develop the interface. For APIs, I decided to make use of Cloudflare Workers with KV connected with S3-Compatible DigitalOcean Spaces. Obviously, I will be using Google’s Firebase for lots of things, especially, Auth.

At the moment, the important thing, that I have been trying to achieve is generating a human-like speech using various LLMs and TTS engines. I have tried ElevenLabs but it becomes too costly in the long run in generating these sleep stories. ChatGPT helped me figure out the comparisons between some of the engines and based on the requirements, I tried some of the other engines like Coqui TTS, Bark, and Tortoise TTS. Just to let you know, the configuration of my PC is i7-12700K, 64GB DDR5 RAM, 3TB SSD, and most importantly Nvidia RTX 3060ti (which can run these TTS engines easily).

I thought, I will first come up with an easy task of setting up and finetuning the code to get a better audio and then probably, if needed, I will rent a faster GPU like RTX 4090 from vast.ai or Azure Spot Virtual Machines to run these at a faster level.

Imagine…
You find yourself standing barefoot upon soft, sun-warmed sand…
Gazing out at an endless ocean, stretching toward the horizon…

A sample generated, which felt it’s good at least. Now need to finetune and keep testing to ensure that we are able to generate a set of voice configurations that could be used to generate the audio of the story.

Building a Phone Dialler for Families and Friends using Xamarin – Part 2

Hello, people, I am back to talk more into the developments of my App. I am trying to name the App as Family Dialler. In case you have any better name, please do reach out or comment below. If any of you are a designer, please do help me with the look and feel of this App.

Family Dialler

Well, the App is now working to some extent in Debugging Mode. I am first working on a skeleton of the App with the minimum designs and layouts. I am doing this to test the functionalities that are required to go further with the App requirements.

NuGet Packages

I am listing some of the NuGet packages that I have come across and using them or am thinking of using in the future (as the App progresses). I have been maintaining a list of these packages and will keep on updating the same in a post published earlier.

I can access the Contacts as we speak and can perform the basic CRUD operations on my favorite contacts. Looking forward to finishing some more things 🙂

Building a Phone Dialler for Families and Friends using Xamarin – Part 1

The idea was to create a Phone Dialler where I can mark my folks (friends and families) as Favorites. You might think that we already have similar functionality available in our current Dialer, so why re-invent the wheel.

However, the way I want to do is that we have a different kind of implementation and that the dialer is something that intrigues me. So let’s see how far I can go into.

Now, in order to achieve this, obviously I will use my favorite IDE i.e., Visual Studio and the technology would be Xamarin.

The Basic Functionality

Let’s try to examine the blocks involved in this kind of App and the basic requirements in order to achieve this. Definitely, we can have other services that can be attached to it at a later point in time but then let’s keep the options to a basic minimum for now.
For the App to work, I would need to access the Phone Contacts as well as Call Logs. The App should have existing Contacts accessed from the Device, Call Logs to access the History, as well as an SQLite DB to maintain the favorites. Let’s not forget the Dialer Pad for dialing numbers directly.

  • Permissions:
    • Access Phone Contacts (Read and Write)
    • Access Call Logs (Read and Write)

To build the UI, we can always make use of ListViews, MasterDetail Pages, etc., to render the desired UI. I will definitely make use of the NuGet packages to get some faster results.

I have already started pushing in my code to GitHub. Once the Code is ready in terms of basic functionality, I will make it public, but for now, let’s hang onto it.