Weekly notes

This week I’ve been defining user stories for our project in China, working on remembering vocabulary in a new Chinese text book and made a first prototype of my audio project.

Learning Chinese

I bought a new book to give myself some structure for taking my Chinese studying more seriously. It is the continuation of the books we used when I was studying at Zhejiang University in China and are originally developed for Chinese students who want to teach Chinese to foreigners. I find them a bit more interesting than the typical text books they have for foreigners learning Chinese. The texts are extracts from real Chinese novels targeting adults paired with exercise in grammar etc.

The first chapter is a few letters from Fu Lei, a famous translator of French novels, and his wife to his sons (who also were artists). They write about growing as an artist as well as discussing Chinese and Western art.

Finding a tutor on Italki

In order to give myself more motivation I also wanted to do Chinese lessons on italki more regularly.

I’ve long been irritated by the bad interface for finding tutors. There is for example no way to search through the description of the teachers. Instead you have to open each teachers personal page individually in a slow Javascript application.

So I spend an hour or so to all teachers from their API, load it into a Sqlite database with full-text search and serve it using Simon Willison datasette.

I’ve uploaded the repository here

Audio transcription

I’m working on an audio transcription side project to learn more about audio processing.

Last week I was trying in vain setting up WebRTC between the browser and a Python server using aiortc. I had manage to set up a basic example, but the audio quality was very bad, and I didn’t manage to start a data channel from the server side. I tried to remove the excess code from the example I started from but was constantly running into issues.

During a Google-session I found an example repository from Dialogflow where they are using RecordRTC and the support for binary files in socket.io to send audio buffers for processing. I set up an example and it seemed much easier. My new approach is to try to do as much audio processing in the frontend as possible and then send chunks to a server for transcribing. I managed to set up a basic example, next step is to learn a bit more about the web audio APIs.

Other things

It was my birthday, me and Giulia went to a staycation. We also had easter lunch at a Swedish restaurant here in Hong Kong which was very nice.