What does Serial.print(tempb); show?
tempc = (5.0 * tempc * 100.0) / (8.0 * 1024.0);
tempc is an int. What do you end up with in tempc?
int tempb = tempc + 0.5;
tempb is a local variable with the same name as a global variable. Adding 0.5 to an int does nothing.
The global tempb is never modified, Test_Speech() should be converting 0 to a string.
strcpy(text, tempx);
Why copy one array to another array of the same size?