South African singer Miriam Makeba, one of Africa's best known voices and a champion of the fight against apartheid during three decades in exile, has died of a heart attack after a concert in Italy.