You are doing some odd things.
A quaternion's role is not to specify a direction directly, but to encapsulate a rotation transformation. The math you've shown is tantamount to "apply the same rotations about the opposite axis". Though correct, it causes extra complexity and obfuscation. Vectors are simple and easy to intuit; quaternions are an application of 4-dimensional math in order to simplify rotation transformations, but they're indecipherable as values.
You multiply that quaternion by a
speed variable, which means it must be type
Vector3 (using this overloaded operator). In physics, speed is generally a directionless quantity rather than a vector. Velocity is the property that combines speed and direction as a vector.
If you stored directions rather than quaternions, you could inspect the values of your directions anywhere and immediately recognize the Euler components. You could add multiple directions together, as a whole or as individual axis components. You could (sometimes) rotate any of them by simple axis-angle transformations. You would only need to pull out the quaternions to accomplish a 3-axis rotation. And if your
speed was directionless, you could apply it in any direction simply by multiplying it by a unit vector, like @sftrabbit described.
In case you decide to try to implement any of these suggestions, this is the unit direction opposite to the camera's direction (
Vector3 backward = Camera.main.transform.forward * -1;