Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google's text-to-speech (WaveNet) quality degrades with long texts

Using the API with the Swedish voice sv-SE-Wavenet-A, it seems that the quality of the audio degrades with longer texts.

Short text:

Det ter sig logiskt att man gått över till tvångsfinansiering av en kanal som under året alltså tappade sex procent av tittartiden. Till slut kommer ingen titta, men alla kommer ändå tvingas betala.

Long text (bold = short text from above):

SVT backade sex procent - endast en tredjedel tittas - tvingas betala ändå Preliminära siffror från mätföretaget MMS visar på att vuxendagiset SVT tappade sex procent av sin tittartid under 2018. Nu tittas det på endast en dryg tredjedel av tiden på SVT, men alla i Sverige tvingas ändå betala sedan årsskiftet. SVT. SVT:s tittarsiffror tappade till 34.9% i så kallad tittartidsandel. Det tvångsfinansierade vuxendagiset har alltså bara en dryg tredjedel av tittartiden, men samtliga med inkomst i Sverige måste likväl betala för detta. Siffrorna från MMS är preliminära och SVT ska ha 34.9% av tittartiden, TV4-gruppen 31.9%, Discovery Networks-gruppen 11.9%, och Nordic Entertainment Group 11.6%. Discovery inkluderar Kanal 5 och Nordic Entertaingment TV3. Det ter sig logiskt att man gått över till tvångsfinansiering av en kanal som under året alltså tappade sex procent av tittartiden. Till slut kommer ingen titta, men alla kommer ändå tvingas betala. Socialism baserar sig på tvång när folk inte frivilligt gör det som socialisterna vill åstakomma. Det är en ren skam att de borgerliga partierna var med och drev igenom tvångsfinansieringen av det konsekvenslösa vuxendagiset. Lämplig åtgärd är att istället koda SVT, så får de som vill betala för detta göra det och övriga slipper. Så kan också SVT falla bort i glömskan. Tills detta sker kommer förstås bloggen bevaka SVT:s felsteg, men kom ihåg att anmälningar till granskningsnämnden ej ska göras då det legitimerar ett sjukt och helt konsekvenslöst meningslöst system. SVT är ett aktiebolag, som besitter beskattningsrätt av svenska folket. Nedanstående kommentarer är inte en del av det redaktionella innehållet och användare ansvarar själva för sina kommentarer. Se även kommentarsreglerna, inklusive listan med kommentatorer som automatiskt kommer raderas på grund av brott mot dessa. Genom att kommentera samtycker du till att din kommentar, tidsstämpel, profillänk och pseudonym sparas av Googles Blogger-system så länge det är relevant, dvs så länge blogginlägget är publicerat.

API Request

const textToSpeech = require('@google-cloud/text-to-speech')
const client = new textToSpeech.TextToSpeechClient()
client.synthesizeSpeech({
  input: text,
  voice: {
    languageCode: 'sv-SE',
    ssmlGender: 'FEMALE',
    name: 'sv-SE-Wavenet-A',
  },
  audioConfig: {
    audioEncoding: 'MP3',
  },
})

Results from the API

  • Short text audio
  • Long text audio
  • Audio comparison

The audio comparison first plays the result I got when sending the short text. It then plays the same text, but cut out from the result I got when sending the long text. Finally, it plays them both together.

Is this a bug or expected? I haven't noticed any degradation of quality at all when using the en-US or en-GB voices.

I noticed that the Swedish voice uses a different naturalSampleRateHertz than all the other voices, perhaps that might cause this?

like image 745
Mickel Avatar asked Jan 07 '19 12:01

Mickel


People also ask

Is Google text to speech good?

Google text to speech is best tool which you use at minimal cost and code effort. It helps a lot in creating different voices. It has wide collection of voices.

Is Google WaveNet free?

Free Usage per Month: The first 1 million characters for WaveNet voices are free each month. Pricing: Text-to-Speech is priced based on the number of characters sent to the service to be synthesized into audio each month and starting from $4.00 USD per 1 million characters after free usage limit is reached.

What is WaveNet used for?

A WaveNet generates speech that sounds more natural than other text-to-speech systems. It synthesizes speech with more human-like emphasis and inflection on syllables, phonemes, and words.

Can I record Google text to speech?

Download and install a voice recorder app from the Google Play Store. You can use your Android's stock text-to-speech engine, but you'll also need a voice recorder app to record it. Open your voice recorder app. Find and tap the app's icon on your Apps menu to open it.


1 Answers

This is probably more related to using MP3 as encoding format than to any sample rate difference with other languages. Since MP3 is a lossy format, it is expected that some quality might be lost; the differences between the short file and the longer file are probably related to MP3 encoding algorithm being used.

I have checked in my side the Speech Synthesis API, and the "sv-SE-Wavenet-A" voice seems to be using a naturalSampleRateHertz of 24000, as all the wavenet I have checked (all en-US-Wavenet voices are in 24000 as well).

I would recommend to you to change the audioEncoding flag to some other encoding format, for example "OGG_OPUS", which will yield a better audio quality.

  audioConfig: {
    audioEncoding: 'OGG_OPUS',
  },

If the MP3 format is a must, you can then change the format in your side, so you can choose which parameters you deem convenient in your MP3 encoding to ensure the maximum audio quality, whilst the audio file is compressed.

like image 139
Joan Grau Noël Avatar answered Nov 12 '22 12:11

Joan Grau Noël