Answer: within, for. “Within six months” sets a deadline: Raman expects to gain the ability before that period has elapsed. “For the last three weeks” describes how long his regular practice has continued.
Since normally introduces a starting point, such as since Monday, rather than a duration such as three weeks. The sentence therefore needs within for the future deadline and for for the elapsed duration.