How to be a good speaker?
In my point of view a good speaker is not who speaks the language which he understands perfectly but the audience doesn't. I think it's the speaker's responsibility to convey his message. Some people speak english to show that they can speak without keeping in mind that his audience is understanding him or not. I think a speaker who speaks a language to which his audience is familiar. Many people who can only understand urdu become unable to understand english speakers and this makes them deprived of important messages conveyed in speech. So don't always try to show your own skills. First consider which language could be appropriate. Speak urdu and with that use some english common words if you wanna be a good speaker. It's not the case all the time. Obviously when you will address an english audience then automatically you will deliver a speech in english. But I think it is a mistake to speak english while having listener of urdu language. Keep balance in everything. I just want to say that instead of focusing your command on english focus more on the way(language)by which you will be able to easily convey your thoughts(message).
Am gonna make these views in a points form so that you will get my point of view.
Be familiar with language of your audience
Be focused on your message
Engage your audience by doing some interesting things(tell them any joke)
After 5 minutes of your speech question anyone to make them attentive
Before conveying speech ask them for their point of view about topic
Don't use high accent(specially like american)because due to that it's become tough for them to make a sense of word which you are speaking
If you want to use english then use British method(btc english)
Be brave and just make your speech outstanding