readme: ---
  tags:
  - tensorflowtts
  - audio
  - text-to-speech
  - text-to-mel
  language: vi
  license: apache-2.0
  datasets:
  - infore
  ---
  # Install TensorFlowTTS
  ```
  pip install TensorFlowTTS
  ```
  ## Converting your Text to Mel Spectrogram
  ```python
  import numpy as np
  import soundfile as sf
  import yaml
  import IPython.display as ipd
  
  import tensorflow as tf
  
  from tensorflow_tts.inference import AutoProcessor
  from tensorflow_tts.inference import TFAutoModel
  
  processor = AutoProcessor.from_pretrained("MarcNg/fastspeech2-vi-infore")
  fastspeech2 = TFAutoModel.from_pretrained("MarcNg/fastspeech2-vi-infore")
  
  text = "xin chào đây là một ví dụ về chuyển đổi văn bản thành giọng nói"
  
  input_ids = processor.text_to_sequence(text)
  
  mel_before, mel_after, duration_outputs, _, _ = fastspeech2.inference(
      input_ids=tf.expand_dims(tf.convert_to_tensor(input_ids, dtype=tf.int32), 0),
      speaker_ids=tf.convert_to_tensor([0], dtype=tf.int32),
      speed_ratios=tf.convert_to_tensor([1.0], dtype=tf.float32),
      f0_ratios =tf.convert_to_tensor([1.0], dtype=tf.float32),
      energy_ratios =tf.convert_to_tensor([1.0], dtype=tf.float32),
  )
  ```
  
  ## Bonus: Convert Mel Spectrogram to Speech
  ```python
  mb_melgan = TFAutoModel.from_pretrained("tensorspeech/tts-mb_melgan-ljspeech-en")
  
  audio_before = mb_melgan.inference(mel_before)[0, :, 0]
  audio_after = mb_melgan.inference(mel_after)[0, :, 0]
  
  sf.write("audio_before.wav", audio_before, 22050, "PCM_16")
  sf.write("audio_after.wav", audio_after, 22050, "PCM_16")
  
  ipd.Audio('audio_after.wav')
  ```
  #### Referencing FastSpeech2
  ```
  @misc{ren2021fastspeech,
        title={FastSpeech 2: Fast and High-Quality End-to-End Text to Speech}, 
        author={Yi Ren and Chenxu Hu and Xu Tan and Tao Qin and Sheng Zhao and Zhou Zhao and Tie-Yan Liu},
        year={2021},
        eprint={2006.04558},
        archivePrefix={arXiv},
        primaryClass={eess.AS}
  }
  ```