Analizar la respuesta JSON en C #

Recibo una respuesta json después de hacer una consulta a una API.

El JSON es como:

    {
   "results": [
      {
         "alternatives": [
            {
               "confidence": 0.965,
               "transcript": "how do I raise the self esteem of a child in his academic achievement at the same time "
            }
         ],
         "final": true
      },
      {
         "alternatives": [
            {
               "confidence": 0.919,
               "transcript": "it's not me out of ten years of pseudo teaching and helped me realize "
            }
         ],
         "final": true
      },
      {
         "alternatives": [
            {
               "confidence": 0.687,
               "transcript": "is so powerful that it can turn bad morals the good you can turn awful practice and the powerful once they can teams men and transform them into angel "
            }
         ],
         "final": true
      },
      {
         "alternatives": [
            {
               "confidence": 0.278,
               "transcript": "you know if not on purpose Arteaga Williams who got in my mother "
            }
         ],
         "final": true
      },
      {
         "alternatives": [
            {
               "confidence": 0.621,
               "transcript": "for what pink you very much "
            }
         ],
         "final": true
      }
   ],
   "result_index": 0
}

Tengo que hacer dos cosas para obtener el resultado json anterior (lo mantengo como una cadena *):

Obtenga la (s) parte (s) de la transcripción de la respuesta json.

Procesar esas cadenas.

Soy nuevo en esto. La conversión a cadena solo se llama serialización. ¿Por qué la deserialización ayudaría aquí?

Conversión a cadena: lo hice usando:

 var reader = new StreamReader(response.GetResponseStream());


            responseFromServer = reader.ReadToEnd();

¿Cómo lograr esto?