Как озвучить текст из строки?

Есть у меня задача озвучить текст, состоит он лишь из некоторых кириллических букв, так-что мудрить сильно не надо. Примерно представляю, что нужно отделяно записать каждый звук, соответствующий букве и потом их воспроизводить в порядке букв в заданной строке. А как конкретно реализовать идей не много. Причём без использования сторонних библиотек. Есть у кого идеи по реализации или примеры? Вот код, который есть на данный момент, проблема в том, что он озвучивает все буквы одновременно, а мне нужно по порядку, так как они идут в строке

import javax.sound.sampled.*;
import java.io.File;

public class Main {

    public static void main(String args[]) {

        String str = "Артист";
        char[] strarr = str.toCharArray();

        for(int i = 0; i < str.length(); i++)
        {
            
            if (strarr.equals("р"));
            {
                makeSound("src//sounds//Р.wav");
            }
            if (strarr.equals("А"));
            {
                makeSound("src//sounds//А.wav");
            }
        }
        }

    public static void makeSound(String path){
        File lol = new File(path);


        try{
            Clip clip = AudioSystem.getClip();
            clip.open(AudioSystem.getAudioInputStream(lol));
            clip.start();
            Thread.sleep(2000);
            clip.stop();
        } catch (Exception e){
            e.printStackTrace();
        }
    }

    }

UPD Сделал проигрывание звуков, но слова получаются сильно дёрганными. Каким способом можно это решить? (Код ужасный, знаю).

    import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;

public class Main {

    public static void main(String args[]) throws FileNotFoundException, JavaLayerException {

        String str = "тест";
        List<Character> chars = str.toLowerCase(Locale.ROOT).chars().mapToObj(c -> (char) c).collect(Collectors.toList());
        Iterator<Character> iter = chars.iterator();

        for(int i = 0; i < str.length(); i++)
        {

            String data = chars.get(i).toString();

                if (data.equals("а"))
                {
                    PlaySound("src//sounds//А2.mp3");
                }
                if (data.equals("у"))
                {
                    PlaySound("src//sounds//У.mp3");
                }
                if (data.equals("е"))
                {
                    PlaySound("src//sounds//Е.mp3");
                }

                if (data.equals("і"))
                {
                    PlaySound("src//sounds//І.mp3");
                }
                if (data.equals("и"))
                {
                    PlaySound("src//sounds//И2.mp3");
                }
                if (data.equals("о"))
                {
                    PlaySound("src//sounds//О.mp3");
                }

            if (data.equals("н"))
            {
                PlaySound("src//sounds//Н2.mp3");
            }
            if (data.equals("в"))
            {
                PlaySound("src//sounds//В2.mp3");
            }
            if (data.equals("с"))
            {
                PlaySound("src//sounds//С2.mp3");
            }
            if (data.equals("к"))
            {
                PlaySound("src//sounds//К2.mp3");
            }
            if (data.equals("п"))
            {
                PlaySound("src//sounds//П2.mp3");
            }
            if (data.equals("р"))
            {
                PlaySound("src//sounds//Р2.mp3");
            }
            if (data.equals("т"))
            {
                PlaySound("src//sounds//Т2.mp3");
            }
            }

        }

        public static void PlaySound(String path) throws FileNotFoundException, JavaLayerException
        {
            FileInputStream file = new FileInputStream(path);
            Player play = new Player(file);
            play.play();
        }
    }

Ответы (0 шт):