(CNN) -- Singer Pink has confirmed what some have been speculating online for a while: she is eating for two these days.
The "Stupid Girls" singer made the announcement during a taping of the "The Ellen DeGeneres Show" set to air Wednesday.
Pink -- whose real name is Alecia Beth Moore -- said she did not want to announce she was pregnant earlier because she's had a miscarriage.
"I didn't want to talk about it because I was just really nervous ... but if I was going to talk about it with anyone, it was going to be with you," she told the talk show host.
When DeGeneres asked her the baby's sex, she said the doctor thinks it's a girl.
"I'm terrified because she thinks it's a girl," she said. "My mom has always wished me a daughter just like me. I'm terrified one of us will go to jail."
The 31-year-old said she and husband, Carey Hart, have always wanted a baby.
"I worked for it," Pink said. "It was not an Oops."
The two have had a tumultuous past. They briefly broke up in 2008. After the breakup, Pink released the song "Please Don't Leave Me" that chronicles a love-hate relationship with a boyfriend she can't let go of.
In the song released last year, she sings, "I always say how I don't need you, but it's always gonna come right back to this, please don't leave me."
The two got back together after the song's release.
Pink told DeGeneres the time apart brought them closer.
"I never had anything in my life that I didn't work hard for and my relationship is that," she said. "We worked really hard and we had our little meltdowns, a couple of them, and now, we're honestly, we both needed to do that and come back together. It's just yummy."
The baby news comes a day after the singer released a compilation album, "Greatest Hits ... So Far."